C语言 :写一个函数 输入一行字符 将此字符串中最长的单词输出
#include//头文件
#include//字符串头文件
main()//主函数
{
char a[1024],b[20],d[20]={'a'}; //定义字符串
int i=0,s=0,l;//定义整形变量
gets(a);//输入字符串,将其赋给a数组
for(;i<=strlen(a);i++)//循环
{
for(;s<=20;s++,i++)//循环将a赋给b
{
if(a[i]==32)//将单词分出,也就是以空格为间隔符
{
b[s]='\0';//将空格替换成数组的结束符
s=0;//初始化s
break;//跳出循环
}
b[s]=a[i];//将a[i]赋给b[s]
}
if(strlen(b)>=strlen(d))//判断b,d两个数组的长度谁大谁小
for(l=0;l<=strlen(b);l++)//循环
d[l]=b[l];//将b[l]赋给d[l]
}
puts(d);//输出d数组
}
#include#include void max(char a[])//函数求最长单词{ int i,j; int count = 0; int max = 0; char b[100]; int k; for(i = 0; i <= strlen(a); i++) { if(a[i] != ' ' && a[i] !='' && a[i]!= '\0' ) count ++; else if(a[i] == ' ' || a[i] == '' || a[i] == '\0') { if(max < count) { k=0; max = count; for(j = i-max; j < i; j++) b[k++] = a[j]; b[k] = '\0'; } count = 0; } } printf("最长单词为:"); puts(b);}int main(){ char a[80]; gets(a); max(a);}
C语言 :写一个函数 输入一行字符 将此字符串中最长的单词输出悬赏分:0 - 离问题结束还有 14 天 23 小时
8-10
#include <iostream>
void main()
{
int word(char c);
int longest(char str[]);
int i;
char str[80];
printf("输入一行字符串\n\n");
gets(str);
printf("\n\n最长的单词为:\n\n");
for(i=longest(str);word(str[i]);i++)
printf("%c",str[i]);
printf("\n");
}
int word(char c)
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) return 1;
else return 0;
}
int longest(char str[])【这个函数几乎完全看不懂 望逐句详细解释其逻辑】
{
int i,flag=1,len=0,point,max_len=0,max_point;
for(i=0;i<=strlen(str);i++)//解析每个字符
{
if(word(str[i])) //是英文字母的话
{
if(flag==1) //成立的话说明这个英文字母是单词的第一个
{
point=i; //单词第一个找到后改变标志
flag=0;
}
else len++; //开始对这个单词长度进行累加
}
else //非英文字母的话
{
flag=1; //等待第一个英文字母的出现,所以flag=1(要是下一个是英文字母的话就能执行上面的if)
if(len>max_len)//之前累加的单词长度是否比上一个单词更长(第一次的话max_len初始化为0,len必大于max_len)
{
max_len=len;//将单词长度保存下来
max_point=point;//将最长单词的第一个英文字母在字符串中的位置保存下来
}
len=0;
}
}
return (max_point);
}
#include<stdio.h>
#include<string.h>
int main()
{
void word(char array[]);
char str[81];
printf("请输入一行字符:");
gets(str);
word(str);
}
void word(char array[])
{
void fanxu(char g[]);
int i,j,k,L,m,p,max,n=0;
int b[81];
char c[81];
L=strlen(array);
for(i=0;i<=L;i++)
{
k=i+1;
if((array[i]==32&&array[k]!=32)||array[i]=='\0')
{
n++;
for(j=n-1;j<n;j++)
{
b[j]=i;
}
}
}
max=b[0];
for(j=1;j<n;j++)
{
if((b[j]-(b[j-1]+1))>max)
{
max=b[j];
}
}
m=max-1;
p=0;
while(array[m]!=32)
{
c[p]=array[m];
m--;
p++;
}
c[p]='\0';
printf("此字符串中最长单词为:");
fanxu(c);
puts(c);
}
void fanxu(char g[])
{
char t;
int i=0;
int j=strlen(g)-1;
while((j-i)>=0)
{
t=g[i];
g[i]=g[j];
g[j]=t;
i++;
j--;
}
}
编写一个函数,输入一行字符,将此字符串中最长单词输出。
1、开头加上c[0]='\\0';,将c长度置为0 。2、你多处k写成了i,帮你改回来。3、b[j]=a[k];后加上b[j+1]='\\0';,否则b字符串无结束标记。4、strcpy(c,b);加上strlen(b)>strlen(c)的条件,否则你输出的是最后一个单词。5、else if(a[k]==' '&&a[k+1]!=' ')中的b[j...
用c语言写一个函数,输入一行字符,将此字符串中最长的单词输出。要有详细...
网友都在找: 写一个函数 输入一行字符 将此字符串中最长的单词输出 正在求助 换一换 回答问题,赢新手礼包 苦等1分钟: 除了秋月爱莉脸,还有哪些动漫界的知名脸型 回答 苦等15分钟: 男人为何喜欢20多岁的女人 回答 苦等23分钟: java编译找不到符号 回答 苦等33分钟: 显卡常见问题有哪些 显卡常见问题...
大一的C程序编写: 写一个函数,输入一行字符,将此字符串中的最长的单词...
str[80];printf("输入一行字符串\\n\\n");gets(str);printf("\\n\\n最长的单词为:\\n\\n");for(i=longest(str);word(str[i]);i++)printf("%c",str[i]);printf("\\n");} int word(char c){ if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) return 1;else return 0;} ...
用c语言编写:写一个函数,输入一行字符,将此字符串中最长的单词输出_百 ...
楼上的何必不指出思路啊!分析:首先输入的是一行字符吧,而要找出最长的单词,首先要做的就是统计出每个单词吧,统计单词可以根据空格来判断是否为一个单词,当不是空格时,变量累加(这个就是单词的长度啊),储存起来,开始下一个单词的统计!最后把每个单词的长度作比较,求出最大的一个就行了,在...
c语言输入一行字符,用函数编程统计其中有多少个单词。假设单词之间以空...
printf("请您输入字符串:\\n");gets(str);fprintf(fp,"字符串:\\n%s\\n", str);panduan(str, m);printf("%d\\n",a);puts(str);fprintf(fp,"单词个数:\\n%d\\n", a);fclose (fp);} void panduan(char *p, int *n){ n = 1;for (; *p!='\\0'; p++)if (*p == ' ')n ...
C语言编程:写一个函数,输入一行字符,将此字符串中最长的单词输出,求...
voidcompute(constcharline[],charr[]){charc;intl=0,i,j,k;chara[80][80];\/\/for(i=0;i0)if(strlen(a[i])>strlen(r))\/\/要的是最长的,不是最大的!!strcpy(r,a[i]);}}
一个c语言问题,编写一个函数,从键盘输入一行字符,将此字符串中最长和...
\/\/#include "stdafx.h"\/\/vc++6.0加上这一行.#include "stdio.h"#include "string.h"int main(void){ char str[100][21]; int i,j,lmax,lmin,ln,imax,imin; printf("Type a line text( # end)...\\nstr="); for(i=0;i<100;i++) if(scanf("%s",str[i])...
编写一个函数,输入一行字符,将此字符串中最长单词输出。
longest函数,算法有问题,而且函数没有返回值。也不用这么复杂!请参考如下代码:include<stdio.h> include<string.h> char a[80],b[80],c[80];void longest(char a[]);int main(){ gets(a);longest(a);printf("%s\\n",c);return 0;} int alpha(char c){ if(c>='a'&&c<='z'|...
C语言编写一个函数,在主函数中输入一个字符串,输出小写字母的个数。
include <stdio.h>int count(char *s){ int r=0; while(*s) { if(*s>='a'&&*s<='z') r++; s++; } return r; }int main(){ char s[200]; scanf("%s",s); printf("小写字母个数为%d\\n",count(s)); return 0;} ...
...谢谢\/* 写一个函数,输入一行字符,将此字符串中最长的单词输出...
i=strlen(str);\/ str[i]=' ';str[i+1]='\\0';\/\/这不str[i+1]='\\0';实现的一个功能,因为字符串最后接一个'\\0'作为字符串的终止,str[i]=' ';是将最后一个'\\0'换成一个空格键,之后在往后家一个‘\\0’。以为你是以空格健判断单词的。int i,j,leng2=0,leng1=0,src1=0,...