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时c语言函数最长单词,说明一个单词刚刚查找完,此时c语言函数最长单词的位置为
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的方法中,c语言函数最长单词你需要跳出它,可以直接用return而不能加任何量在后面
}
public static int cc()
{
return 321;//因为返回类型声明为int,所以返回一个整数
}
public static string msmsm()
{
return“asdfhasjghdg”;//因为返回类型声明为string,所以返回一个字符串
}
c语音题目 查找最长的单词怎么编写按照题目指定的要求,编写两个函数,一个函数用来读入表示颜色的字符串以井字号做术,另外一个函数就是在已有的字符串数组中查找长度最长的那个字符串 。下面是代码和运行的截图 。
#include
#include
#include
int read_color(char **color);
char **find_max_len(const char **s, int n);
int main()
{ int n; //字符串个数
char *color[150], **ans;
n = read_color(color); //读入字符串 , 并把字符串的首地址存入指针数组color[],返回数组的长度
ans = find_max_len(color, n); //查找最长的单词,返回指向第一个最长单词的指针数组元素的指针
printf("%s\n", *ans);
return 0;
}
int read_color(char **color)
{ int i=0;
do
{ color[i]=(char*)malloc(150);
scanf("%s",color[i]);
}
while(strcmp(color[i],"#"));
return i;
}
char **find_max_len(const char **s, int n)
{int i,max=0;
for(i=1;in;i)
if(strlen(s[i])strlen(s[max]))max=i;
return s[max];
}
C语言输出一行字符串中最长的单词代码如下:
#包括 stdio, h
# includestring 。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(我)?。剑В?';我++)
{
如果(c[我]?。剑ВВ?
Len++;
If(c[I]=='')
{
If (lenlenth)
{
长度=兰;
国旗=i-lenth;//当有一个新的最长的字符串时,使用flag记录字符串开始下标
}
Len=0;
}
}
If (lenlenth)
{
长度=兰;
国旗=i-lenth;//以同样的方式
}
Printf("最长的子串是%d字符,子串是:",lenth);//打印子串的长度
For (I = flag;Iflaglenth;i)//将子字符串从flag输出到flaglenth-1
Printf("%c",[I]c);
Printf("\n");//换行
}
扩展资料:
1.返回意味着从被调用的函数继续执行到主函数 。Return可以伴随一个返回值 , 返回值可以是常量、变量或表达式 。
2.操作:结束正在运行的函数并返回该函数的值 。
3.返回值:
返回值可以是各种数据类型 , 例如:int、float、ouble、char、a[](数组)、*a(指针)、
【c语言函数最长单词 c语言编程题目最长单词】结构或类(c)返回类型指定返回后要添加的金额的类型,如果返回类型被声明为void,则不需要返回值 。PublicstaticvoidMain()//programentry只能被声明为void和int的返回
{
//没有返回值
}
公共静态空隙(mm)
{
返回;//在某些情况下,在一个voidmethod中,需要跳出来,你可以直接使用return,不能在后面添加任何数量
}
公共静态intcc()
{
321的回归;因为返回类型声明为int , 所以返回一个整数
}
公共静态字符串MSMSM()
{
返回“asdfhasjghdg”;因为返回类型被声明为string , 所以返回一个string
}
C语言求最长单词#includecstdio
#includecstring
using namespace std;
const int maxn=100;//这个表示单词可能的最大个数
const int maxl=100;//这个表示单词可能的最长长度,需要根据题目要求确定
int n,maxlen;
int len[maxn];
char ch[maxn][maxl];
int max(int a,int b){
return ab?a:b;
}
int main(){
int k=0;
while(~scanf("%c",ch[n][k])){ //每次输入一个字符 , n表示当前是第几个单词 , k表示是这个单词的第几个字母
if(ch[n][k]!=' 'ch[n][k]!='\n'){ //不是空格或空行说明还没有读完,k , 接着读下一个
k;continue;
}
len[n]=k-1;//计算这个单词的长度
maxlen=max(maxlen,len[n]); //更新最长的单词长度
if(ch[n][k]==' ') k=0,n; //如果读到空格,说明这个单词读完了
else{//如果读到空行 , 说明这组数据读完了 , 开始输出这组数据的答案
for(int i=0;i=n;i)
if(len[i]==maxlen)//如果长度等于最长的单词长度 , 这个单词就是最长单词
printf("%s",ch[i]); //输出即可
putchar('\n');
memset(ch,0,sizeof(ch));//将原来的数组清空
n=0;maxlen=0;k=0;
}
}
return 0;
}
我自己测了一组输入数据 , 答案应该没什么问题了:
Hello sir are you satisfied with my answer ?
Yes I feel thankful of your answer .
How does it feel ?
It feels very good !
输出:
satisfied
thankful
does feel
feels
等等,我才发现是按字典序输出...我这是按输入顺序输出的....
#includecstdio
#includecstring
#includealgorithm
using namespace std;
const int maxn=100;//这个表示单词可能的最大个数
const int maxl=100;//这个表示单词可能的最长长度,需要根据题目要求确定
int n,maxlen;
struct Word{
int len;
char ch[maxl];
void clean(){
memset(ch,0,sizeof(ch));
}
}word[maxn];
int max(int a,int b){
return ab?a:b;
}
bool cmp(const Word a,const Word b){//比较两个单词的函数
return strcmp(a.ch,b.ch)0;
}
int main(){
int k=0;
while(~scanf("%c",word[n].ch[k])){ //每次输入一个字符,n表示当前是第几个单词,k表示是这个单词的第几个字母
if(word[n].ch[k]!=' 'word[n].ch[k]!='\n'){ //不是空格或空行说明还没有读完,k,接着读下一个
k;continue;
}
word[n].len=k-1;//计算这个单词的长度
maxlen=max(maxlen,word[n].len);//更新最长的单词长度
if(word[n].ch[k]==' ') k=0,n;//如果读到空格,说明这个单词读完了
else{//如果读到空行,说明这组数据读完了,开始输出这组数据的答案
sort(word,word n 1,cmp);//将所有单词按照字典序排序
for(int i=0;i=n;i)
if(word[i].len==maxlen)//如果长度等于最长的单词长度,这个单词就是最长单词
printf("%s",word[i].ch); //输出即可
putchar('\n');
for(int i=0;i=n;i)
word[i].clean();//将原来的数组清空
n=0;maxlen=0;k=0;
}
}
return 0;
}
上面这个是修改稿 。
测试数据:
Hello sir are you satisfied with my answer ?
Yes I feel thankful of your answer .
How does it feel ?
It feels very good !
What feel it does ?
输出结果:
satisfied
thankful
does feel
feels
What does feel
最后一个What先输出不是错误哦...
因为W是大写...所以字典序比其他的小
用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语言函数的最长单词输出问题 新手求助大佬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语言函数最长单词和c语言编程题目最长单词的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 为什么我电脑配置很高,为什么我电脑配置很高但是玩CF还是卡
- cpu通过什么总线连接,cpu可以通过总线访问计算机内存和各种输入输出设备吗
- word2003怎么插入脚注,word中如何添加脚注
- 怎么发送小程序表格文件,怎么发送小程序表格文件夹
- 关于zst解压命令linux的信息
- 苹果手机i茅台怎么分身,苹果手机怎么应用分身i茅台
- jquery瀑布流加载,瀑布流 css
- 张大仙虎牙地图直播,张大仙虎牙直播5000万年薪
- linux创建实例的命令 linux 命令行创建文件