用函数实现从一个长度为N(N<30)的字符串中找出相同字符构成的最长字符串。比如“abc1123dddjk” 其中相同字符构成的最长字符串为“ddd”,如果相同字符构成的字符串有两个及以上的字符串长度相等,则输出最后查到的字符串,比如“abc123bbbccc”,输出ccc 。 输入信息提示:"请输入一个字符串:\n" 输入格式:"%s" 输出信息提示:"最长字符串:\n" 输出格式: "%c"(用循环输出,不要用puts输出)
时间: 2024-03-20 20:42:13 浏览: 44
好的,我能理解您的要求。以下是实现该功能的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[30];
printf("请输入一个字符串:\n");
scanf("%s", str);
int len = strlen(str);
int max_len = 1; // 相同字符构成的最长字符串的长度
char max_char = str[0]; // 相同字符构成的最长字符串的字符
for (int i = 0; i < len; i++) {
int count = 1; // 相同字符的数量
for (int j = i + 1; j < len; j++) {
if (str[j] == str[i]) {
count++;
} else {
break;
}
}
if (count > max_len) {
max_len = count;
max_char = str[i];
}
}
printf("最长字符串:\n");
for (int i = 0; i < max_len; i++) {
printf("%c", max_char);
}
return 0;
}
```
输入示例:
```
请输入一个字符串:
abc1123dddjk
```
输出示例:
```
最长字符串:
ddd
```