Girilen yazıda hangi karakterden kaç tane olduğunu bulan program 'C'

omrumbakitmz

Hectopat
Katılım
28 Ekim 2012
Mesajlar
289
Daha fazla  
Cinsiyet
Erkek
Örnek 1
yazi girin: test
e: 1 tane
s: 1 tane
t: 2 tane
[TBODY] [/TBODY]

Örnek 2
yazi girin: test
e: 1 tane
s: 1 tane
t: 2 tane
[TBODY] [/TBODY]

Soru yukarıda anlatıldığı şekilde. Ek olarak soruda bir not var. Not şu: "Ascii kodlarını düşünün. Dışarıdan 128 farklı karakter girilebilir. Bunların hepsini nasıl saklayabilirsiniz?"
Yardımcı olursanız mutlu olurum.
 
Ascii 128 karakter içerir. 0 ile başlayan 127 ile biten bir değişkene ihtiyacınız var. Bunu karşılayan en küçük veri tipi 1 baytlık "char" veri tipidir. -128 ile 127 arasında değerleri alır. "unsigned char" veri tipi de işinizi görebilir. 0 ile 255 arasındaki değerleri alır.

Bu kodu inceleyin, istediğiniz bilgi bu kodda mevcut. Türkçede 29 harf olduğu için 26'yı 29 yapıp Türkçe karakterleri eklemeniz gerekiyor.
Kod:
int main()
{
   char string[100];
   int c = 0, count[26] = {0};
   printf("Enter a string\n");
   gets(string);
   while (string[c] != '\0')
   {
      /** Considering characters from 'a' to 'z' only
          and ignoring others */
      if (string[c] >= 'a' && string[c] <= 'z')
         count[string[c]-'a']++;
      c++;
   }
   for (c = 0; c < 26; c++)
   {
      /** Printing only those characters
          whose count is at least 1 */
      if (count[c] != 0)
         printf("%c occurs %d times in the entered string.\n",c+'a',count[c]);
   }
   return 0;
}
 
Son düzenleme:
Son düzenleme:
Arkadaşlar internette sayısız kaynak var bununla alakalı. Türkçe bile aratsanız çıkıyor aslında.
Bir bir satırın ne işe yaradığını sorgulayarak ilerleyebilirsiniz, diğer türlü verilen ödevin bir faydası olmaz sizlere.

[CODE lang="csharp" title="Metin içinde aratma"]class Program
{
static void Main(string[] args)
{
String metin = "www.yazilimkodlama.com";
metin = metin.ToLower();
String karakterler = "0123456789abcdefghijklmnopqrstuvwxyz.?,;";
int[] count = new int[karakterler.Length];
for (int i = 0; i < metin.Length; i++)
{
int index = karakterler.IndexOf(metin);
if (index < 0)
continue;
else
{
count[index]++;
}
}
for (int i = 0; i < count.Length; i++)
{
if (count < 1)
continue;
else
{
Console.WriteLine(karakterler + " " +count);
}
}
Console.ReadKey();
}
}[/CODE]
 

Geri
Yukarı