Linux 拨号vps windows公众号手机端

怎么用C语言递归求单词个数

lewis 8年前 (2017-04-03) 阅读数 8 #程序编程
文章标签 c语言

下面是用C语言递归来求单词个数的示例代码:

#include<stdio.h>

//定义递归函数来计算单词个数

intcountWords(charstr[]){

staticintwordCount=0;

staticintisWord=0;

if(str[0]=='\0'){

returnwordCount;

}

if(str[0]==''||str[0]=='\n'||str[0]=='\t'){

isWord=0;

}elseif(isWord==0){

isWord=1;

wordCount++;

}

countWords(str+1);//递归调用,移动到下一个字符

returnwordCount;

}

intmain(){

charstr[]="HelloWorld,thisisasentence.";

//调用递归函数计算单词个数

intnumWords=countWords(str);

printf("单词个数:%d\n",numWords);

return0;

}

上述代码中,我们定义了一个递归函数countWords来计算单词个数。在每一次递归调用中,我们判断当前字符是否为空格、换行符或制表符,如果是,则将isWord标记为0;否则,如果isWord为0,表示遇到了新的单词,我们将其标记为1,并增加单词计数器wordCount。

在主函数中,我们定义了一个示例字符串str,然后调用countWords函数来计算单词个数,并将结果打印出来。

运行该代码,将输出结果为:单词个数:6(根据示例字符串)。请确保在实际使用时将示例字符串替换为你要统计单词个数的实际字符串。

下面是用C语言递归来求单词个数的示例代码:

#include<stdio.h>

//定义递归函数来计算单词个数

intcountWords(charstr[]){

staticintwordCount=0;

staticintisWord=0;

if(str[0]=='\0'){

returnwordCount;

}

if(str[0]==''||str[0]=='\n'||str[0]=='\t'){

isWord=0;

}elseif(isWord==0){

isWord=1;

wordCount++;

}

countWords(str+1);//递归调用,移动到下一个字符

returnwordCount;

}

intmain(){

charstr[]="HelloWorld,thisisasentence.";

//调用递归函数计算单词个数

intnumWords=countWords(str);

printf("单词个数:%d\n",numWords);

return0;

}

上述代码中,我们定义了一个递归函数countWords来计算单词个数。在每一次递归调用中,我们判断当前字符是否为空格、换行符或制表符,如果是,则将isWord标记为0;否则,如果isWord为0,表示遇到了新的单词,我们将其标记为1,并增加单词计数器wordCount。

在主函数中,我们定义了一个示例字符串str,然后调用countWords函数来计算单词个数,并将结果打印出来。

运行该代码,将输出结果为:单词个数:6(根据示例字符串)。请确保在实际使用时将示例字符串替换为你要统计单词个数的实际字符串。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门