这里使用了map,注意怎么遍历。

#include <iostream>
#include <string>
#include <algorithm>
#include <map>

using namespace std;

int main(){
    string s, tmp;
    while(cin >> s){
        map<string,int> m;
        int len = s.length();
        for(int i = 0; i < len; i++){
            for(int j = 1; j <= len-i; j++){
                tmp = s.substr(i, j);
                if(m.find(tmp) != m.end()){
                    m[tmp]++;
                }else{
                    m[tmp] = 1;
                }
            }
        }
        for(auto it = m.begin(); it != m.end(); it++){
            if(it -> second > 1){
                cout << it->first << " " << it->second << endl;
            }
        }
    }
    return 0;
}