您的位置:首页 > 其它

习题 7.10 写一个函数,输入一行字符,将此字符串中最长的单词输出。

2017-09-15 13:08 495 查看

C程序设计(第四版) 谭浩强 习题7.10 个人设计

习题 7.10 写一个函数,输入一行字符,将此字符串中最长的单词输出。

代码块:

方法1:

#include <stdio.h>
#include <string.h>
void longword(char s[], char t[]);                 //定义最长单词函数
int main()
{
char str[30], lg[20];
gets(str);                                     //输入一行字符
longword(str, lg);                             //调用最长单词函数
puts(lg);                                      //输出最长单词
return 0;
}
//最长单词函数
void longword(char s[], char t[])
{
int i, j, n, k, m, word;
char p[20];
n=strlen(s);
m=0;
word=0;
for (i=0, j=0, k=0; i<=n; i++){
if ((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')){
word=1;
p[j++]=s[i];
}
else if (word==1){
if (j>k){
for (m=0; m<j; m++)
t[m]=p[m];
t[m]='\0';
k=j;
}
word=0;
j=0;
}
}
}


方法2:

#include <stdio.h>
#include <string.h>
void longword(char s[]);                   //定义最长单词函数
int main()
{
char str[50];
printf("Please enter string: ");       //输入一行字符
gets(str);
longword(str);                         //调用最长单词函数
return 0;
}
//最长单词函数
void longword(char s[])
{
int max=0, len=0;
char m[10], ma[10];
int n=strlen(s);
for (int i=0, j=0; i<n; i++){
if ((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z'))
m[len++]=s[i];
else{
m[len]='\0';
len>max ? max=len, strcpy(ma, m), len=0 : len=0;
}
}
printf("The longest word: ");
puts(ma);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐