Извините, но я не поняла вашу функцию. Я написал гораздо более простой код для этого.
Первое, что я почувствовал неправильно в вашем коде, это то, что вы передаете символ в качестве аргумента функции для вычисления количества символов в строке.
Вы должны передать весь массив в качестве аргумента функции.
int stringLength(char *);//function to calculate and return the string length
int main()
{
char input[100],ch;
int noCh,i=0;
printf("\nEnter the string:\n");
scanf("%s",input);
/*
for(i=0;i<100;i++)
noCh=stringLength(input[i]);/*Passing each string character as input parameter to the function*/
noCh = stringLength(input);
printf("\nThe number of characters in the string \"%s\" is %d.",input,noCh);
return 0;
}
int stringLength(char * output)
{
/*
int num=0;
if(output ==" ")
num--;
else
num++;
if(output == EOF)
return num;
*/
int count = 0;
char *ch = output;
while(*ch!='\0')
{
count = count +1;
ch++;
}
return count;
}
Пожалуйста, просмотрите эту ссылку Нет символов в строке для лучшего понимания.
Пожалуйста, посмотрите на этом сайте , как массивы также передаются в функции .
Надеюсь, это поможет вам.