c语言函数最长单词 c++最长最短单词

用c语言怎么输出字符串中最长的单词?

//帮你改造一下:

创新互联主要从事网站建设、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务扶绥,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

#include stdio.h

#include string.h

void main()

{

char c[50];

void f(char c[50]);//不设返回值了,直接用函数f打印结果。

gets(c);

f(c);

}

void f(char c[50])

{

int len=0,lenth=0,i,flag=0;

for(i=0;c[i]!='\0';i++)

{

if(c[i]!=' ')

len++;

if(c[i]==' ')

{

if(lenlenth)

{

lenth=len;

flag = i - lenth;//当新的最长串出现时,用flag记录该串起始下标

}

len=0;

}

}

if(lenlenth)

{

lenth=len;

flag = i - lenth;//同理

}

printf("最长的子串长度为%d个字符,该子串为:",lenth);//打印子串长度

for(i = flag;i flag + lenth;i++)//打印子串,下标从flag到flag + lenth - 1

printf("%c",c[i]);

printf("\n");//换行

}

用c语言写一个函数,输入一行字符,将此字符串中最长的单词输出。要有详细解释

#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(lenmax_len)//之前累加的单词长度是否比上一个单词更长(第一次的话max_len初始化为0,len必大于max_len)

{

max_len=len;//将单词长度保存下来

max_point=point;//将最长单词的第一个英文字母在字符串中的位置保存下来

}

len=0;

}

}

return (max_point);

}

C语言用函数求字符串中最长单词.

#includestdio.h

#includestring.h

int main()

{

char str[100];

gets(str);

void findLongest(char str[]);

findLongest(str);

return 0;

}

void findLongest(char str[])

{

int currLen=0,maxLen=0,currStart=0,MaxStart=0;

int i=0,j=0;

for(i=0;str[i];i++)

{

if((str[i]='a'str[i]='z')||(str[i]='A'str[i]='Z'))

{

if(currLen==0)//当前长度等于0时,说明一个单词刚刚查找完,此时的位置为

currStart=i;//新单词的开始位置

currLen++;

}

if(currLenmaxLen)//当前单词的长度大于最大值,进行赋值

{

maxLen = currLen;

MaxStart = currStart;

}

if(str[i]==' ')//遇到空格,即一个单词已经结束。

{

currLen = 0;

}

}

for(j=MaxStart;jMaxStart+maxLen;j++)

printf("%c",str[j]);

}

运行效果:

扩展资料:

Return用法

1.含义:return表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,返回值可以是一个常量,变量,或是表达式。

2.作用:结束正在运行的函数,并返回函数值。

3.返回值:

计算结果表示函数执行的顺利与否(-1、0)返回值可以为各种数据类型,如:int,float,ouble,char,a[](数组),*a(指针),

结构或类(c++)返回类型规定了return后面所加的量的类型,如果返回类型声明为void,则不需要返回值。public static void Main()//程序入口只可以声明为void和int的返回

{

//不需要返回值就OK

}

public static void mm()

{

return;//有些时候,在void的方法中,你需要跳出它,可以直接用return而不能加任何量在后面

}

public static int cc()

{

return 321;//因为返回类型声明为int,所以返回一个整数

}

public static string msmsm()

{

return“asdfhasjghdg”;//因为返回类型声明为string,所以返回一个字符串

}

c语言函数的最长单词输出问题 新手求助大佬

void f(char a[])

{

int pos,tpos,len=0,tlen=0;

int i=0;

do

{

if ((a[i]='a' a[i]='z')||(a[i]='A' a[i]='Z'))

{

if (!tlen) tpos=i;

tlen++;

}

else

{

if (tlenlen)

{

pos=tpos;

len=tlen;

}

tlen=0;

}

}

while (a[i++]);

for (i=0;ilen;i++) printf("%c",a[pos+i]);

}

C语言求最长单词

#include stdio.h

#include string.h

int main(void)

{

char a[100];

char b[100];

int i,k,m;

int flag;

int t;

int count;

while(1)

{

flag = 0;

gets(a);

count = 0;

t = 0;

k = 0;

for(i = 0;i =strlen(a);i++)

{

if(a[i] != ' ' a[i] !='\0')

{

flag = 1;

count ++;

}

else

if(flag == 1)

{

if(t count)

{

t = count;

for(m = i-t; m i;m++)

{

b[k++] = a[m];

}

b[k] = '\0';

}

flag = 0;

count = 0;

k = 0;

}

}

puts(b);

}

}


标题名称:c语言函数最长单词 c++最长最短单词
网站链接:http://azwzsj.com/article/hijohe.html