如果一个字符串由某长度K的字符串重复多次得到 则输出K的C语言
时间: 2024-09-22 22:02:57 浏览: 65
如果一个字符串是由某个固定长度 `K` 的子串重复多次拼接而成的,你可以通过循环计算并逐位比较的方式来确定 `K` 的值。下面是一个简单的 C 语言函数示例,它接受一个字符串 `str` 和它的长度 `n`,然后尝试找到最长的重复子串:
```c
#include <stdio.h>
#include <string.h>
// 函数来查找重复的子串 K
int findSubStringLength(char str[], int n) {
int i, j, max_length = 0, length;
for (i = 1; i <= n - max_length; ++i) { // 遍历可能的子串长度
for (j = i + max_length; j <= n; ++j) { // 每次检查从 i 到 j 的子串
if (strcmp(&str[i], &str[j]) == 0 && j - i + 1 > max_length) { // 如果子串相等且比已知最大长度长
max_length = j - i + 1; // 更新最大长度
}
}
}
return max_length;
}
int main() {
char input[] = "abccdeefgg"; // 示例输入字符串
int len = strlen(input);
int k = findSubStringLength(input, len);
printf("重复子串的长度 K 是: %d\n", k);
return 0;
}
```
在这个程序中,`findSubStringLength` 函数遍历所有可能的子串,每次检查两个相邻的部分是否完全相同,如果是且长度大于当前的最大长度,则更新 `max_length`。当循环结束时,`max_length` 就会存储重复子串的长度。
阅读全文