任务描述
题目描述:输入一段字符(由空格、字母和数字几种组成,保证开头不为空格),里面有若干个字符串,求这些字符串的长度和,并输出最长字符串内容,如果有多个输出最先出现的那个字符串。以stop
作为最后输入的字符串。
相关知识(略)
编程要求
请仔细阅读右侧代码,结合相关知识,在Begin-End
区域内进行代码补充。 输入 输入一段文字 输出 输入一段字符,以stop
作为最后输入的字符串。
#include<string.h>
int main()
{
int i, length;
char str[100];
int j = 0;//记录最长字符后的那一个空格所在的下标
while (1)//一直要输入字符,不知道结束,
{
gets(str);
int a = 0;//用来记录总的字符数
int b = 0;//用来记录每个单词的字母数
int max = 0;//记录最长单词字母数,刚开始没有输入字符,就是0;
length = strlen(str);
if (strcmp(str, "stop") == 0)//与字符串“stop”做对比,如果一样则为0
{
break;//输入stop时,跳出循环
}
else
{
for (i = 0; i <= length; i++)
{
if (str[i] != ' ' && str[i] != '\0')
{
a++;
b++;
}
//遇到空格,前后两个字符串的分开
if (str[i] == ' ' || str[i] == '\0')
{
if (b > max)//b统计好了每个字符串数,轮流与max对比
{
max = b, j = i;//j=i,把最长字符串后的那个空格的下标给j;
}
b = 0;
}
}
}
printf("%d ", a);
for (i = j - max; i < j; i++)//i=j-max就是最长字符串第一个字符的下标
{
putchar(str[i]);
}
printf("\n");
}
return 0;
}
参考文章:C语言基础:头歌作业题(字符串统计)_头歌分类统计字符个数-CSDN博客
微量修改