题目描述:输入一段字符(由空格、字母和数字几种组成,保证开头不为空格),里面有若干个字符串,求这些字符串的长度和,并输出最长字符串内容,如果有多个输出最先出现的那个字符串。以stop作为最后输入的字符串。c语言
时间: 2023-11-20 12:09:10 浏览: 301
可以使用字符串的相关操作函数来实现这个功能。具体步骤如下:
1. 定义一个字符串数组来存储输入的字符串,并使用循环逐个读入字符串,直到输入的字符串为"stop"为止。
2. 在循环中,使用字符串操作函数`strlen`来计算每个字符串的长度,并累加到一个变量中,以求得所有字符串的长度和。
3. 同时,在循环中判断每个字符串的长度是否大于当前最长字符串的长度,如果是,则更新最长字符串的内容和长度。
4. 在循环结束后,输出所有字符串的长度和以及最长字符串的内容。
以下是实现代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100 // 定义字符串数组的最大长度
int main() {
char str[MAX_LEN]; // 定义字符串数组
int len_sum = 0; // 记录所有字符串的长度和
int max_len = 0; // 记录最长字符串的长度
char max_str[MAX_LEN]; // 记录最长字符串的内容
while (1) {
scanf("%s", str); // 读入字符串
if (strcmp(str, "stop") == 0) { // 如果输入的字符串为"stop",则退出循环
break;
}
int len = strlen(str); // 计算字符串的长度
len_sum += len; // 累加到总长度中
if (len > max_len) { // 如果当前字符串的长度大于最长字符串的长度
max_len = len; // 更新最长字符串的长度
strcpy(max_str, str); // 更新最长字符串的内容
}
}
printf("Length sum: %d\n", len_sum); // 输出所有字符串的长度和
printf("Longest string: %s\n", max_str); // 输出最长字符串的内容
return 0;
}
```
注意:此代码假设输入的字符串不会超过100个字符。如果需要处理更长的字符串,需要相应地调整MAX_LEN的大小。
阅读全文