永发信息网

c语言单词统计题目

答案:3  悬赏:30  手机版
解决时间 2021-07-21 11:35
  • 提问者网友:山高云阔
  • 2021-07-20 13:42
规定以字母(大小英文字母)开头的由字母数字组成的字符序列是一个“单词”,
从键盘输入一行字符(文本),统计其中不同“单词”的数目。
例: 假定输入字符(文本):
88a123*.**abcd\;123a123,-abcd+?x1x2w\a1\a2
统计“单词”及其数目如下:
a123,2个;abcd,2个;x1x2w,1个;a1,1个;a2,1个*/
最佳答案
  • 五星知识达人网友:不想翻身的咸鱼
  • 2021-07-20 14:11
你好。
很幸运看到你的问题。
但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。
可能是你问的问题有些专业了,没人会。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也比较热心,可能能快点帮你解决问题。
希望我的回答也能够帮到你!
祝你好运~!
全部回答
  • 1楼网友:雪起风沙痕
  • 2021-07-20 15:30
不懂!
  • 2楼网友:長槍戰八方
  • 2021-07-20 14:32

#include <stdio.h> #include <string.h> #include <ctype.h> #include <malloc.h>

struct word_t { char * word; int num; struct word_t * next; }; struct head_t { struct word_t * list; int num; };

int main() { char temp[256]; struct head_t *head; int len; char tmp[32]; head=(struct head_t*)malloc(sizeof (struct head_t)); head->list=NULL; head->num=0;

do{ printf("Please input some character:"); fgets(temp,256,stdin);

len=strlen(temp); for(int i=0;i<len;i++) { if(!isalpha(temp[i])) continue; else { for(int j=0;j<len-i;j++) { if(isalnum(temp[i+j])) tmp[j]=temp[i+j]; else { i+=j; char * word_tmp=(char *)malloc(sizeof(char)*(j+1)); strncpy(word_tmp,tmp,j); word_tmp[j]='\0'; printf("%s\n",word_tmp); if(head->list==NULL) { struct word_t * st_word_tmp=(struct word_t *)malloc(sizeof (struct word_t)); st_word_tmp->word=word_tmp; st_word_tmp->next=NULL; st_word_tmp->num=1; head->list=st_word_tmp; head->num=1; } else { for(struct word_t* st_word_temp=head->list;st_word_temp!=NULL;st_word_temp=st_word_temp->next) { if(!strcmp(st_word_temp->word,word_tmp))//find word { st_word_temp->num++; break; } } if(st_word_temp==NULL) { struct word_t * st_word_tmp=(struct word_t *)malloc(sizeof (struct word_t)); st_word_tmp->word=word_tmp; st_word_tmp->num=1; st_word_tmp->next=head->list; head->list=st_word_tmp; head->num++; } } break; } } } } for(struct word_t *test=head->list;test!=NULL;test=test->next) printf("\t%s : %d\n",test->word,test->num);

}while(1); for(int k=0;k<head->num;k++) { delete head->list->word; struct word_t* tmp_delete=head->list; head->list=head->list->next; delete tmp_delete; }

return 0; }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯