tj
2025-07-12 15:01:14
发布于:浙江
1阅读
0回复
0点赞
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 101
#define MAX_SUBSTRINGS 5050
typedef struct {
char str[MAX_LEN];
int count;
} Substring;
int compare(const void *a, const void *b) {
return strcmp(((Substring*)a)->str, ((Substring*)b)->str);
}
int main() {
char s[MAX_LEN];
scanf("%s", s);
int len = strlen(s);
Substring substrs[MAX_SUBSTRINGS];
int substr_count = 0;
for (int i = 0; i < len; i++) {
for (int j = i; j < len; j++) {
char temp[MAX_LEN];
int idx = 0;
for (int k = i; k <= j; k++) {
temp[idx++] = s[k];
}
temp[idx] = '\0';
int found = 0;
for (int k = 0; k < substr_count; k++) {
if (strcmp(substrs[k].str, temp) == 0) {
substrs[k].count++;
found = 1;
break;
}
}
if (!found) {
strcpy(substrs[substr_count].str, temp);
substrs[substr_count].count = 1;
substr_count++;
}
}
}
qsort(substrs, substr_count, sizeof(Substring), compare);
for (int i = 0; i < substr_count; i++) {
if (substrs[i].count > 1) {
printf("%s %d\n", substrs[i].str, substrs[i].count);
}
}
return 0;
}
这里空空如也
有帮助,赞一个