用c语言试设计一个程序:如果字符串的一个子串(长度大 1)的各个字符均相同,则称之为等值子串。输入字符串 S,以‘!’为结束标志,如果串 S 中不存在等值子串,则输出信息:” 无等值子串”,否则求出(输出)一个长度最大的等值子串。
时间: 2024-01-21 22:19:14 浏览: 25
以下是使用C语言设计的程序,实现寻找最长等值子串的功能:
```c
#include<stdio.h>
#include<string.h>
#define MAXLEN 100 //定义字符串的最大长度
int main() {
char s[MAXLEN];
int len, i, j, k, max_len = 0, start = 0;
printf("请输入字符串S:");
fgets(s, MAXLEN, stdin); //从标准输入读入字符串
len = strlen(s);
for (i = 0; i < len; i++) { //枚举子串的起始位置
for (j = i + 1; j < len; j++) { //枚举子串的结束位置
int flag = 1;
for (k = i; k < j; k++) { //判断子串是否为等值子串
if (s[k] != s[i]) {
flag = 0;
break;
}
}
if (flag && j - i > max_len) { //更新最长等值子串的信息
max_len = j - i;
start = i;
}
}
}
if (max_len == 0) { //若不存在等值子串
printf("无等值子串\n");
} else { //输出最长等值子串
printf("最长等值子串为:");
for (i = start; i < start + max_len; i++) {
printf("%c", s[i]);
}
printf("\n");
}
return 0;
}
```
该程序首先读入字符串S,然后枚举子串的起始位置和结束位置,并判断该子串是否为等值子串。如果存在等值子串,则更新最长等值子串的信息,并最终输出最长等值子串。如果不存在等值子串,则输出"无等值子串"提示信息。
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)