C Программа для расчета длины строки с использованием функций и массива символов - PullRequest
0 голосов
/ 14 июня 2019

Я пишу программу для расчета длины строки с использованием функций и символьных массивов. Я определил функцию для вычисления длины строки.возвращает результат в виде типа 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 ]

2 голосов
/ 14 июня 2019

Извините, но я не поняла вашу функцию. Я написал гораздо более простой код для этого.

Первое, что я почувствовал неправильно в вашем коде, это то, что вы передаете символ в качестве аргумента функции для вычисления количества символов в строке.

Вы должны передать весь массив в качестве аргумента функции.

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;
}

Пожалуйста, просмотрите эту ссылку Нет символов в строке для лучшего понимания. Пожалуйста, посмотрите на этом сайте , как массивы также передаются в функции .

Надеюсь, это поможет вам.

0 голосов
/ 14 июня 2019

Ваш код не имеет смысла и не будет компилироваться.

Исследовать эту программу.

#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.
...