第三个需求 怎么计算出重复单词

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/675427701556177.jpg "#left"
如何截取出每个单词 就空格和符号之前的字符串如何截取并存放进另一个数组

我的思路是:
1、把字符串所有单词存入一个二维字符数组
2、统计所有单词出现的次数
3、把出现两次的单词信息打印出来。

#include <stdio.h>
#include <ctype.h>
#include <string.h>
int findWord(char (*words)[20],int len,char * str ){
    
    int i=0;
    int find=0;
    while(i<len){
        
        if(strcmp(words[i],str)==0){
            break;
        }
        i++;
    }
    
    return i;;
    
}

int main(void){
    
    char str[256];
    char words[100][20];
    
    printf("请输入字符串:\n");
    gets(str);
    
    //printf("str=%s\n",str);
    int i=0;
    char ch = str[i];
    int num=0;
    int index=0;
    int start=1;
    //把字符串所有单词存入二维字符数组 
    while(str[i]!='\0'){
        
        while(start==1&&str[i]!='\0'){
            
            words[num][index]=ch;
            index++;
            i++;
            ch=str[i];
            if(isalpha(ch)==0){
                start=0;
                words[num][index]='\0';
            //    printf("words[%d]=%s\n",num,words[num]);
                num++;
                index=0;
                break;
            }
            
            
            
        }
        
        if(str[i]!='\0'){
            i++;
            ch=str[i];
            if(isalpha(ch)!=0){
                start=1;
            }
        }
    }
    words[num][index]='\0';
    
    //printf("num=%d\n",num);
    
//    for(i=0;i<num;i++){
//        printf("%s\n",words[i]);
//    }

    char same[20][20]={'\0'};
    int sameNum[20]={0};
    int sn=0;
    int temp;
    
    int j=0;
    
    //遍历整个数组,统计所有单词出现的次数 
    while(j<num){
        
        temp = findWord(same,sn,words[j]);
    //    printf("temp=%d\n",temp);
        
        
        if(same[temp][0]=='\0'){
            strcpy(*(same+temp),words[j]);
            sn++;        
        }
        sameNum[temp]++;

        
        j++;
    }
    
    //把出现两次的单词信息打印出来 
    for(j=0;j<sn;j++){
        if(sameNum[j]>1){
            printf("%s:%d次\n",same[j],sameNum[j]);
        }
    }
    
    
    return 0;
    
    
} 

img