c语言编程 写一个函数,输入一行字符,将此字符串中最长的单词输出...

发布网友 发布时间:15分钟前

我来回答

5个回答

热心网友 时间:5分钟前

#include "string.h"
#include "ctype.h"
main()
{
char str[50];
char str1[50][20];
char str2[20];
int i,j,t;

gets(str);

j=0,t=0;
for(i=0;str[i];i++) /*提取字符串中的单词,但是输入时每个单词之间只允许*/
{ /*有一个字符如空格,逗号只有句末才能用句号*/
if(isalnum(str[i]))
{
str1[j][t]=str[i];
t++;
}
if(str[i]==' '||str[i]==',')
{
str1[j][t]='\0';
j++;t=0;
}
}
str1[j][t]='\0';

for(i=0;i<j;++i) /*从提取出的单词中挑选其中最长的*/
{
if(strlen(str1[i])>=strlen(str1[i+1]))
{
strcpy(str2,str1[i]);
}
else
{
strcpy(str2,str1[i+1]);
}
}

printf("%s",str2); /*输出最长的单词*/
}

热心网友 时间:1分钟前

//测试过了,应该没问题
#include<stdio.h>
#include<string.h>
#include<ctype.h>
/*isalpha
函数名称: isalpha   
函数原型: int isalpha(int ch);   
函数功能: 检查ch是否是字母.   
函数返回: 是字母返回非0 ,否则返回 0.*/
int main()
{
char str[2048];
gets(str);
int i,max=0,begin=0,end=-1,b,e;
int flag=0;
for(i=0;str[i]!='\0';i++)
{
if(!isalpha(str[i])){
if(flag){
flag=0;
}
}else{
if(!flag){
flag=1;
begin=i;
}else{
end=i;
if(end-begin+1>max){
max=begin-end+1;
b=begin;
e=end;
}
}
}
}
str[e+1]='\0';
printf("%s\n",str+b);
return 0;
}

热心网友 时间:10分钟前

strlen这个函数

热心网友 时间:6分钟前

#include <stdio.h>
#include <string.h>
int main(void)
{
char st[121],*mx,*p;
scanf("%120[^\n]%*c",st);
mx=strtok(st," .,?!\t");
while (p=strtok(NULL," .,?!\t"))
if (strlen(mx)<strlen(p)) mx=p;
printf("%s",mx);
return 0;
}

热心网友 时间:7分钟前

用strlen这个函数函数获取字符串的长度,再比较就行了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com