Soru : char* str = ” tubitak olimpiyatlarinda basarili olmak cok guzeldi”;
printf(“%d \n”, metot(str));
Aşağıdaki metot tanımını gözönüne alın. str içinde yukarıda görüldüğü gibi sadece alfabetik karakterler ve boşluk sembolleri olduğunda, yukarıdaki program parçasının çıkısı nedir?
Not : str null-terminated (sonu ‘\0’) ile biten bir alfasayısal ifadedir.
Not : str göstergeci her arttırıldığında dizideki bir sonraki elemanı göstermeye başlar
#include<stdio.h>
int metot(char *str)
{
int c = 0;
bool flag = false;
while (*str != '\0')
{
if (*str == ' ')
{
if (flag && *(str + 1) != ' ' && *(str + 1) != '\0')
c++;
}
else
{
if (!flag) c++;
flag = true;
}
str++;
}
return c;
}
main()
{
char* str = " tubitak olimpiyatlarinda basarili olmak cok guzeldi";
printf("%d \n", metot(str));
}
Cevap : metod str içinde kaç kelime olduğu sayar. Verilen str dizisinde 6 kelime vardır.