C语言:输入一段字符(由空格、字母和数字几种组成,保证开头不为空格),里面有若干个字符串,求这些字符串的长度和,并输出最长字符串内容,如果有多个输出最先出现的那个字符串。以stop作为最后输入的字符串。
时间: 2023-11-20 20:58:19 浏览: 225
c语言文章编辑
可以使用字符串处理函数来实现该程序,具体步骤如下:
1. 定义一个字符数组,用于存储输入的字符串。
2. 循环读入字符串,直到输入的字符串为 "stop"。
3. 对输入的字符串进行处理,统计字符串的长度并累加到总长度中。
4. 如果当前字符串的长度大于最长字符串的长度,则更新最长字符串的内容。
5. 输出最长字符串的内容及所有字符串的长度和。
下面是该程序的具体实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
int main() {
char str[MAX_LEN]; // 定义字符数组
int len = 0, total_len = 0, max_len = 0;
char max_str[MAX_LEN] = {0};
while (1) {
scanf("%s", str); // 读入字符串
if (strcmp(str, "stop") == 0) {
break; // 如果输入的字符串为 "stop",则退出循环
}
len = strlen(str); // 统计字符串长度
total_len += len; // 累加到总长度中
if (len > max_len) {
max_len = len; // 更新最长字符串的长度
strcpy(max_str, str); // 更新最长字符串的内容
}
}
printf("所有字符串的长度和为:%d\n", total_len);
printf("最长的字符串是:%s\n", max_str);
return 0;
}
```
在该程序中,我们使用了 `strcmp()` 函数来判断输入的字符串是否为 "stop",使用了 `strlen()` 函数来统计字符串的长度,使用了 `strcpy()` 函数来复制最长字符串的内容。
阅读全文