用C语言输入一段字符(由空格、字母和数字几种组成,保证开头不为空格),里面有若干个字符串,求这些字符串的长度和,并输出最长字符串内容,如果有多个输出最先出现的那个字符串。以stop作为最后输入的字符串。
时间: 2024-03-05 21:50:57 浏览: 99
好的,下面是C语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
char longest_str[MAX_LEN] = "";
int longest_len = 0, sum_len = 0;
while (1) {
scanf("%s", str);
if (strcmp(str, "stop") == 0) {
break;
}
int len = strlen(str);
sum_len += len;
if (len > longest_len) {
strcpy(longest_str, str);
longest_len = len;
}
}
printf("Sum Length: %d\n", sum_len);
printf("Longest String: %s\n", longest_str);
return 0;
}
```
程序的大致思路是,使用一个 while 循环不断地读入字符串,直到输入的字符串为 "stop" 为止。在循环中,我们通过 `strlen()` 函数求出每个字符串的长度,并且累加到 `sum_len` 变量中。如果当前字符串的长度比之前最长的字符串还要长,我们就用 `strcpy()` 函数将当前字符串复制到 `longest_str` 变量中,并且更新 `longest_len` 变量为当前字符串的长度。最后输出累加后的字符串长度和最长的字符串即可。
阅读全文