用c语言编写,题目描述:输入一段字符(由空格、字母和数字几种组成,保证开头不为空格),里面有若干个字符串,求这些字符串的长度和,并输出最长字符串内容,如果有多个输出最先出现的那个字符串。以stop作为最后输入的字符串。样例输入: My name is Amy My name is Jane stop 样例输出: 11 name 12 name
时间: 2024-02-21 11:00:53 浏览: 169
下面是一份C语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char s[100];
int sum = 0;
int maxLen = 0;
char maxStr[100];
while (scanf("%s", s)) {
if (strcmp(s, "stop") == 0) {
break;
}
int len = strlen(s);
sum += len;
if (len > maxLen) {
maxLen = len;
strcpy(maxStr, s);
}
}
printf("%d %s %d\n", sum, maxStr, maxLen);
return 0;
}
```
这个程序中使用了C语言的字符串处理函数,包括了头文件`<string.h>`。首先定义了一个字符数组`s`来输入每个单词,使用一个整型变量`sum`来记录总长度,使用一个整型变量`maxLen`来记录最长字符串的长度,使用一个字符数组`maxStr`来记录最长字符串的内容。
然后,通过while循环不断输入每个单词,当输入的单词为"stop"时,跳出循环。
在循环中,我们先计算每个字符串的长度,累加到sum中。然后判断当前字符串的长度是否大于最长字符串的长度maxLen,如果是,则更新maxLen和maxStr。
最后,使用printf函数输出sum、maxStr和maxLen即可。需要注意的是,printf函数中%s表示输出一个字符串,%d表示输出一个整数。
阅读全文