Я попытался вручную подсчитать количество символов в моей строке, включая пробелы. Я закодировал это:Вручную подсчитывает количество символов в строке в C
#include <stdio.h>
#include <stdlib.h>
void Unos(char* string, int duzina)
{
int i=0;
char c;
do {
c=getchar();
string[i]=c;
i++;
} while(c != '\n' && i<duzina);
}
int brojznak(char* str)
{
int i=0,br=0;
while(*str++ != '\0')
{
br++;
}
return br;
}
int main()
{
char recenica[100];
printf("Unesite recenicu\n");
Unos(recenica,100);
int i=0;
printf("%d",brojznak(recenica));
return 0;
}
Этот код не работает должным образом, но я думаю, что он должен. С другой стороны, если мы изменим условие:
int brojznak(char* str)
{
int i=0,br=0;
while(*str++ != '\0')
{
br++;
}
return br;
}
Он снова иногда печатает несколько случайных символов, но отсчитывает это точно. Может ли кто-нибудь сказать мне, что не так в этом коде?
Это даже не компилируется из-за этого: 'Е ("% D", brojznak (recenica)); ' –
Каков правильный результат для этого кода, который вы хотите? –
И ты сказал: «С другой стороны, если мы изменим условие». Нет никакой разницы между первой и второй реализацией 'brojznak()' вы отправили. –