我正在编写一个c程序来使用函数和字符数组来计算字符串的长度。我已经定义了一个函数来计算字符串的长度。它以int类型返回输出。但是我得到的输出为0。
#include<stdio.h>
#include<string.h>
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*/
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;
}
/*output code*/
[Output code][1]
[1]: https://i.stack.imgur.com/pwvqQ.png
答案 0 :(得分:2)
对不起,但我不了解您的功能。我为此写了一个简单得多的代码。
我对您的代码感到不对的第一件事是,您正在传递一个字符作为函数参数来计算字符串中的字符数。
您应该将整个数组作为参数传递给函数。
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;
}
请访问此链接No of characters in string,以更好地理解。 也请访问此网站how arrays are passed in function。
希望这会对您有所帮助。
答案 1 :(得分:0)
您的代码没有意义,也不会编译。
研究此程序。
#include <stdio.h>
size_t stringLength( const char *s )
{
size_t n = 0;
while ( s[n] != '\0' ) ++n;
return n;
}
int main( void )
{
enum { N = 100 };
char input[N];
printf( "Enter a string: " );
fgets( input, sizeof( input ), stdin );
size_t n = stringLength( input );
if ( input[n-1] == '\n' ) input[--n] = '\0';
printf( "\nThe number of characters in the string \"%s\" is %zu.\n", input, n );
}
其输出可能看起来像
Enter a string: Hello Km Shrikanth!
The number of characters in the string "Hello Km Shrikanth!" is 19.