用 c 语音编写程序 输入一段字符(由空格 字母和数字组成,保证开头不为空格),里面有若干字符串,求这些字符串的长度和,并输入最长字符串内容,如果有多个输出最先出现的字符串,以 stop 作为最后输入的字符串
时间: 2024-12-04 08:22:38 浏览: 20
在C语言中,你可以通过以下步骤编写一个程序来满足这个需求:
1. 首先,你需要创建一个循环来读取用户的输入,直到遇到`stop`为止。可以使用`fgets()`函数来逐行读取用户输入,因为你知道它会在遇到换行符或者指定的缓冲区大小时停止。
```c
#include <stdio.h>
#include <string.h>
#define BUFFER_SIZE 100
int main() {
char input[BUFFER_SIZE];
int total_length = 0;
char longest_string[100] = "";
while (1) {
fgets(input, sizeof(input), stdin);
if (strcmp(input, "stop") == 0) break; // 判断是否为"stop"
// 去除末尾的换行符
input[strcspn(input, "\n")] = '\0';
size_t len = strlen(input); // 获取字符串长度
total_length += len;
// 检查是否更新了最长字符串
if (len > strlen(longest_string)) {
strcpy(longest_string, input);
}
}
printf("总长度: %d\n", total_length);
printf("最长字符串: %s\n", longest_string);
return 0;
}
```
在这个程序里:
- `fgets()`获取一行输入并存储到`input`数组中。
- 如果`input`等于"stop",则跳出循环。
- 使用`strlen()`计算当前字符串长度,并累加到`total_length`中。
- 比较当前字符串长度与`longest_string`的长度,如果更长,则将当前字符串复制到`longest_string`中。
- 循环结束后,打印出总的字符串长度和最长字符串的内容。
阅读全文