怎么用C语言寻找字符串中最大一段
发布时间:2023-05-14 14:36:50
以下是使用C语言代码寻找字符串中最大一段 1000 字的示例:
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100000 // 最大字符串长度
int main()
{
char str[MAX_LEN + 1];
int cnt = 0, max_cnt = 0, start = 0, end = 0, max_start = 0, max_end = 0;
printf("请输入字符串:");
fgets(str, MAX_LEN, stdin); // 从标准输入中获取字符串
for (int i = 0; i < strlen(str); i++) {
if (str[i] != ' ') {
cnt++; // 统计连续不为空格的字符数
if (cnt == 1) {
start = i; // 记录起始位置
}
} else {
cnt = 0; // 出现空格时重置计数器
}
if (cnt > max_cnt) {
max_cnt = cnt;
end = i; // 记录结束位置
max_start = start;
max_end = end; // 记录最大段的起始和结束位置
}
}
printf("
最大一段 %d 个字符是:
", max_cnt);
for (int i = max_start; i <= max_end; i++) {
printf("%c", str[i]);
}
printf("
");
return 0;
}
在上面的代码中,我们首先声明一个字符数组 str,用于存放输入的字符串,同时设定了一个最大字符串长度 MAX_LEN。然后,通过调用 fgets() 函数从标准输入中获取字符串。
接着,我们遍历字符串中的每个字符,使用一个计数器 cnt 统计连续不为空格的字符数,并通过变量 start 和 end 记录当前连续段的起始和结束位置。当出现空格时,重置计数器 cnt。如果当前连续段的字符数大于之前存储的最大值 max_cnt,则更新最大值 max_cnt 及其对应的起始和结束位置 max_start 和 max_end。
最后,我们输出求解结果:输出最大一段的字符数 max_cnt,并通过循环输出字符串中对应的字符。
