NTYCRZ 2021-11-02 19:38 采纳率: 100%
浏览 32
已结题

c语言用getchar函数取得单词长度时碰到的问题

题目:题目内容:

你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4。注意,行中可能出现连续的空格。

输入格式:

输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。

输出格式:

在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。

输入样例:

It's great to see you here.

输出样例:

4 5 2 3 3 4

我的代码遇到的问题:

img

以下是我的代码,请各位指点!

#include <stdio.h>
#include <string.h>
int main()
{
char a[25];
char c;
int i=0,k;
c=getchar();

while(c!='.'){
    while(c!=' '&&c!='.')
    {
        a[i]=c;
        i++;
        c=getchar();
    }
    if(c!='.')
    {
        printf("%d ",strlen(a));
        i=0;
        for(k=0;k<25;k++)
        {
            a[k]='\0';
        }
        c=getchar();
    }else {
        printf("%d",strlen(a));
    }
}
return 0; 
} 

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-11-02 19:46
    关注

    char a[25];初始化一下,改为
    char a[25] = {0};
    对于第一个单词,你没有进行a数组初始化,后面的单词,你都用循环初始化为'\0'了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月10日
  • 已采纳回答 11月2日
  • 创建了问题 11月2日