统计歌词中的单词个数,并找出最短和最长的单词。 歌词:Daddy finger, Daddy finger, where are you? Here I am. Here I am. How do you do? Mammy finger, Mammy finger, where are you? Here I am. Here I am. How do you do? Brother finger, Brother finger, where are you? Here I am. Here I am. How do you do? Sister finger, Sister finger, where are you? Here I am. Here I am. How do you do? Baby finger, Baby finger, where are you? Here I am. Here I am. How do you do? 设计函数实现: 函数int gecifun( char *geci, char *strmax, char *strmin)——实现求geci中的单词个数并返回,strmax和strmin中分别存放最长和最短单词; 主函数——调用函数gecifun并输出。 程序输出:歌词中共有85个单词。 歌词中最长的单词为Brother,最短的单词为I。
if (word != 0){ temp[word]='\0'; if (num==1){//获取第一个单词的时候,将第一个单词复制给最大和最小 strcpy(strmax,temp); strcpy(strmin,temp); } else//第二个单词之后比较字符串长度之后进行复制 {
if (strlen(temp)>=strlen(strmax)) strcpy(strmax,temp); if (strlen(temp)<=strlen(strmin)) strcpy(strmin,temp); } num++;//单词数量递增 word = 0;//单词数组下标置零 } } else temp[word++] = geci[i];//每个单词按位置赋值 } return num; } int main() { int acount; char lstr[30],sstr[30]; char song[N] = "Daddy finger, Daddy finger, where are you? Here I am. Here I am." "How do you do? Mammy finger, Mammy finger, where are you? Here I am. Here " "I am. How do you do? Brother finger, Brother finger, where are you? Here " "I am. Here I am. How do you do? Sister finger, Sister finger, where are you?" "Here I am. Here I am. How do you do? Baby finger, Baby finger, where are you?" "Here I am. Here I am. How do you do?"; acount=gecifun(song,lstr,sstr); printf("歌词中共有%d个单词。歌词中最长的单词为%s,最短的单词为%s。\n",acount,lstr,sstr); return 0; }