当前位置:首页 » 编程语言 » c语言输出最长单词
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言输出最长单词

发布时间: 2023-03-26 03:08:46

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 (tlen>len)
{
pos=tpos;
len=tlen;
}
tlen=0;
}
}
while (a[i++]);
for (i=0;i<len;i++) printf("%c",a[pos+i]);
}

Ⅱ C语言输出一行字符串中最长的单词

代码如下:

#包括< stdio, h >

# include < string。H >

Voidmain()

字符c[50];

Voidf(charc[50]);//没有返回值,直接用函数f打印结果。

(c);

F(c);

Voidf(charc[50])

Intlen=0,lenth=0,I,flag=0;

For(I=0;C(我)!='\0';我++)

如果(c[我]!='')

Len++;

If(c[I]=='')

If (len > lenth)

长度=兰;

国旗=i-lenth;//当有一个新的最长的字符串时,使用flag记录字符串开始下标

Len=0;

If (len > lenth)

长度=兰;

国旗=i-lenth;//以同样的方式

Printf("最长的子串是%d字符,子串是:",lenth);//打印子串的长度

For (I = flag;I < flag + lenth;i++)//将子字符串从flag输出到flag + lenth-1

Printf("%c",[I]c);

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

(2)c语言输出最长单词扩展阅读:

1.返回意味着从被调用的函数继续执行到主函数。Return可以伴随一个返回值,返回值可以是常量、变量或表达式。

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

3.返回值:

返回值可以是各种数据类型,例如:int、float、ouble、char、a[](数组)、*a(指针)、

结构或类(c++)返回类型指定返回后要添加的金额的类型,如果返回类型被声明为void,则不需要返回值。PublicstaticvoidMain()//programentry只能被声明为void和int的返回

{

//没有返回值

}

公共静态空隙(mm)

{

返回;//在某些情况下,在一个voidmethod中,需要跳出来,你可以直接使用return,不能在后面添加任何数量

}

公共静态intcc()

{

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

}

公共静态字符串MSMSM()

{

返回“asdfhasjghdg”;因为返回类型被声明为string,所以返回一个string

}

Ⅲ C语言输出字符串(英文句子)的最长的单词

你的语法没错,但逻辑想复杂了。你只要想一个单词是从一个非空格开始,到下一个空格结束。那么只要一个标识变量来回切换,就可以拆分单词,同时用变量累加能得到单词长度,通过比较保留最长的那个长度值和起始下标就可以实现你要的功能。

这个代码,用动态数组来做更好,不仅一次遍历就能得到最长单词,还能把所有单词都拆出来。

考虑你的要求,没用动态数组,参照你的写法写了代码给你参考,已详细备注说明。

#include<stdio.h>

#include<string.h>

void pick(char str[])

{

int i,len,n=0,ns=0,flag=0,bx=0,bxs;//bx:一个单词的起始下标

len=strlen(str);

for(i=0;i<len;i++)

{

if(!flag && str[i]!=' ')flag=1,bx=i;//flag为0时遇到第一个字母置1,并记录单词起始下标

if(flag && str[i]!=' ')n++;//flag为1时每遇到一个非空格,单词长度计数+1

//flag为1时遇到第一个空格置0并确认一个单词结束,如比上一个单词长(和ns比),保存当前单词长度到ns,并保存单词始下标

if(flag && str[i]==' ')

{

flag=0;

if(n>ns)ns=n,bxs=bx;

n=0;

}

}

for(i=bxs;i<bxs+ns;i++)

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

}

int main()

{

char a[50];

gets(a);

pick(a);

return 0;

}