tj
2025-07-12 15:01:14
发布于:浙江
3阅读
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;
}
这里空空如也







有帮助,赞一个