C语言:输入一段字符(由空格、字母和数字几种组成,保证开头不为空格),里面有若干个字符串,求这些字符串的长度和,并输入最长字符串内容,如果有多个输入最先出现的那个字符串。以stop作为最后输入的字符串。
时间: 2024-11-30 07:23:10 浏览: 107
在C语言中,你可以通过以下步骤来实现这个功能:
1. **初始化**:首先定义一个变量 `current` 用于记录当前正在处理的字符串,设置初始值为空;另外需要一个变量 `maxLength` 来存储最长字符串的长度,初始设为0,以及一个指针 `longestString` 存储最长字符串的内容。
2. **读取输入**:进入一个循环,不断从用户那里获取字符,直到遇到 'stop' 或者遇到空格为止。可以使用 `scanf()` 函数逐个读取字符。
3. **处理字符串**:当遇到空格时,检查 `current` 是否非空。如果非空,说明找到了一个完整的字符串。此时,计算 `current` 的长度并更新 `maxLength` 和 `longestString`,如果当前长度大于 `maxLength`。
4. **更新状态**:将 `current` 设回空,继续读取下一个字符。
5. **结束标志**:当读到 'stop' 时,跳出循环。如果 `current` 还未清零,这意味着最后一次输入的字符串就是最长的。
6. **输出结果**:最后打印最长字符串的长度和内容。
下面是伪代码形式的示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char current[100]; // 当前处理的字符串
int maxLength = 0;
char longestString[100];
while (1) {
char ch;
scanf(" %c", &ch); // 读入一个字符,忽略开头空格
if (ch == 'stop') break; // 如果是 'stop',退出循环
current[strlen(current)] = ch; // 将字符追加到当前字符串
if (strlen(current) > maxLength && current[0] != ' ') { // 更新最长字符串
maxLength = strlen(current);
strncpy(longestString, current, maxLength);
}
}
printf("最长字符串的长度是:%d\n", maxLength);
printf("最长字符串是:%s\n", longestString);
return 0;
}
阅读全文