C程序,使用函数和字符数组来计算字符串的长度

时间:2019-06-14 16:24:30

标签: c arrays function c-strings

我正在编写一个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

2 个答案:

答案 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.