python怎么统计一句英语的单词数量并输出

python怎么统计一句英语的单词数量并输出,第1张

题主你好,

代码及测试截图如下:

说明: 上图红框处的result可不写, 只是为了看一下分隔结果是否正确

希望可以帮到题主, 欢迎追问

刚用C语言写的,功能实现,但有很多可以优化的地方,自己改吧,不明白的追问:

#include <stdioh>

#include <stringh>

//能统计的最大单词个数,可以自己改

#define MAX_WORD_COUNT 500

//结构体,保存每个单词及对应的个数

typedef struct WordCount

{

char cWord[20];

int  iCount;

}T_WordCount;

int CalcEachWord(const char pText);//计算单词个数及输出信息等

void LowerText(char pText);//把单词变成小写形式

void SwapItem(T_WordCount ItemA, T_WordCount  ItemB);//交换两个元素

void SortWord(T_WordCount pWordSet);//排序

int main(int argc, char argv[])

{

//测试文本

char pText[] ="Text HAs HAS ONE h-as MOrE Has MORE ha-S BLANk more blank or more oR blank  Between   wor-ds";

printf("The text is :\n");

printf("----------------------------------\n");

printf("%s\n", pText);

printf("----------------------------------\n");

printf("The top 5 words is :\n");

CalcEachWord(pText); return 0;

}

int CalcEachWord(const char pText)

{

char cTmp[20] = {0};

int  i   = 0;

char pTmp   = cTmp;

int  iFlag   = 0;

T_WordCount tWordSet[MAX_WORD_COUNT];

memset(tWordSet, 0, sizeof(tWordSet));

while (pText != '\0')

if ((pText >= 'A' && pText <= 'Z') || (pText >= 'a' && pText <= 'z'))

 pTmp = pText;

 pTmp++;

}

else if (pText == '-')

{

 ++pText;

 continue;

}

else

 if (strlen(cTmp) > 0)

 {

  LowerText(cTmp);

  iFlag = 0;

  for (i = 0; i < MAX_WORD_COUNT; ++i)

  {

   if (strlen(tWordSet[i]cWord) > 0)

   {

    if (strcmp(tWordSet[i]cWord, cTmp) == 0)

    {

     iFlag = 1;

     tWordSet[i]iCount++;

     break;

    }     

   }

   else

   {

    strcpy(tWordSet[i]cWord, cTmp);

    tWordSet[i]iCount = 1;

    iFlag = 1;

    break;

   }

  }

  if (!iFlag)

  {

   printf("No more space to save word\n");

  }

 }

 memset(cTmp, 0, 20);

 pTmp = cTmp;

}

++pText;

}

//排序 SortWord(tWordSet);

for (i = 0; i < 5; ++i)

{

if (strlen(tWordSet[i]cWord) > 0)

{

 printf("%s:%d\n",tWordSet[i]cWord,tWordSet[i]iCount);

}

}

return 0;

}

void LowerText(char pText)

{

char pTmp = pText;

while (pTmp != '\0')

{

if ((pTmp >= 'A' && pTmp <= 'Z'))

{

 pTmp += 32 ;

}

pTmp++; }

}

void SwapItem(T_WordCount ItemA, T_WordCount  ItemB)

{

T_WordCount Tmp;

memset(&Tmp, 0, sizeof(T_WordCount));

strcpy(TmpcWord, ItemA->cWord);

TmpiCount = ItemA->iCount;

strcpy(ItemA->cWord, ItemB->cWord); ItemA->iCount = ItemB->iCount;

strcpy(ItemB->cWord, TmpcWord); ItemB->iCount = TmpiCount;

}

//冒泡排序算法

void SortWord(T_WordCount pWordSet){

int i,j; 

for (j = 0; j < MAX_WORD_COUNT - 1; j++) 

for (i = 0; i < MAX_WORD_COUNT - 1 - j; i++) 

{     

 if (pWordSet[i]iCount < pWordSet[i+1]iCount)   

 {                             

  SwapItem(&pWordSet[i], &pWordSet[i+1]);

 }     

}

}

}

测试结果截图:

对w进行循环与字符串a比对

比如"is"与a进行比对,找到a中所有有a地方然后判断该位置是否为一个单词是则在对应b中增加数字

如果代码不想自己写的话

我可以有偿代劳

ASCII码表 32 为 blank 空格。

方括号中应填入:p++;

while(p==32)

[ p++; ]

其意思是:排除掉句子刚开始可能有前空格的情况。

以上就是关于python怎么统计一句英语的单词数量并输出全部的内容,包括:python怎么统计一句英语的单词数量并输出、编写一个程序。功能是读入一篇英文文章,统计该文章中每个单词的出现次数,并输出出现次数最多的前5个单词、c语言问题 统计单词的词频①编写函数void count(char a[],char w[][10等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10112223.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存