C dilinde boşluk sayısına bakılmadan bir cümledeki kelime sayısını bulma

İsterseniz buradan deneyin. Online compiler'da 4 gösteriyor yazdıklarınızı yazınca.
O siteden kontrol ettim zaten. Yazdığım kısım tam anlaşılamamış galiba. Boşluk sayılarını el ile belirterek söylüyorum. Girdiğim şey şu, aldığım cevap ise 6. Sizde öyle değil mi?
İki boşluk, "jn", bir boşluk, "jk", iki boşluk, "lj", bir boşluk, "f", iki boşluk.
 
O siteden kontrol ettim zaten. Yazdığım kısım tam anlaşılamamış galiba. Boşluk sayılarını el ile belirterek söylüyorum. Girdiğim şey şu, aldığım cevap ise 6. Sizde öyle değil mi?
İki boşluk, "jn", bir boşluk, "jk", iki boşluk, "lj", bir boşluk, "f", iki boşluk.
clion da denedim 6 çıktı
 
[CODE title="Sozcuk sayisi"]#include <stdio.h>
#include <string.h>

void main()
{
char s[200];
int count = 0, i;

printf("Enter the string:\n");
scanf("%[^\n]s", s);
for (i = 0;s != '\0';i++)
{
if (s == ' ' && s[i+1] != ' ')
count++;
}
printf("Number of words in given string are: %d\n", count + 1);
}[/CODE]

Kendine göre isimleri değiştirip kullanabilirsin.


Programcılık için İngilizce bilmenin gerekliliğinin güzel bir örneği olmuş. "C program to count words in a sentence" gibi basit bir şey aratıp 10 saniyede cevabı bulmuşsunuz. İngilizce insanı gerçekten büyük dertlerden kurtarıyor.
 
Kendim yazmadım kodu zaten. Şu linkten aldım. Türkçe aratınca muhtemelen kapsamlı sonuç vermeyecek ki arkadaş konu açmış buraya.
Aynen hocam zaten ben de o linkten kopyalamıştım ancak yapıştırmadan önce sizin mesajınızı gördüm 😃
 
Peki... Noktalama işaretleri ne olacak. . şeklinde ise . kelime olarak mı sayılacak?
Veya Hello, World!'ü input olarak verdiğimizde Hello, ve World! olarak mı ayıracak?

Bu tip işler için C biraz yetersiz kalabiliyor.

Daha üst seviye dillerde bahsettiğiniz işlemler tek satırda yapılabiliyor.

JavaScript:
console.log(str.split(/\W+/).filter(x => x).length);

C#:
Console.WriteLine(Regex.Matches(str, @"\b\w+\b").Count);
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı