![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
C语言编程:写一个函数,输入一行字符,将此字符串中最长的单词输出.
#include<stdio.h>#include<string.h>charmax(chars[]){intsum=0,m=0,n=0,i;for(i=0;i<=str...
#include<stdio.h>
#include<string.h>
char max(char s[])
{
int sum=0,m=0,n=0,i;
for(i=0;i<=strlen(s);i++)
{
if(s[i]!=" ")sum++;
else
{
if(m<sum)
{
m=sum;
n=i-1;
}
sum=0;
}
}
for(i=n-m+1;i<=n;i++)
{
printf("%c",s[i]);
}
}
int main()
{
char str[100];
printf("请输入一行字符:\n");
gets(str);
printf("\n此字符串中最长的单词是:\n");
max(str);
printf("\n");
return 0;
}
求大神帮忙改错。 展开
#include<string.h>
char max(char s[])
{
int sum=0,m=0,n=0,i;
for(i=0;i<=strlen(s);i++)
{
if(s[i]!=" ")sum++;
else
{
if(m<sum)
{
m=sum;
n=i-1;
}
sum=0;
}
}
for(i=n-m+1;i<=n;i++)
{
printf("%c",s[i]);
}
}
int main()
{
char str[100];
printf("请输入一行字符:\n");
gets(str);
printf("\n此字符串中最长的单词是:\n");
max(str);
printf("\n");
return 0;
}
求大神帮忙改错。 展开
7个回答
展开全部
#include
<stdio.h>
void
main()
{
int
a,b,c;
printf("请输入3个整数:");
scanf("%d%d%d",&a,&b,&c);
if((a>b)
&&
(a<c)
||
(a<b)
&&
(a>c))
printf("\n
%d
为位于中间的数\n",a);
if((b>a)
&&
(b<c)
||
(b<a)
&&
(b>c))
printf("\n
%d
为位于中间的数\n",b);
if((c>b)
&&
(c<a)
||
(c<b)
&&
(c>a))
printf("\n
%d
为位于中间的数\n",c);
}
这个是几个数中输出最大的数的!
扩展资料:
字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
参考资料来源:百度百科-字符串
展开全部
#include<stdio.h>
#include<string.h>
void max(char s[]){
int sum=0,m=0,n=0,i;
for(i=0;i<=strlen(s);i++) {
if(s[i]!=' ')
sum++;
else
{
if(m<sum) {
m=sum;
n=i-1;
} sum=0;
}
}
for(i=n-m+1;i<=n;i++) {
printf("%c",s[i]);
}
}
int main(){
char str[100];
printf("请输入一行字符:\n");
gets(str);
printf("\n此字符串中最长的单词是:\n");
max(str);
printf("\n"); return 0;
}
//max()函数if(s[i]!=" ")改为if(s[i]!=‘ ’)
//max()函数返回值改为void
#include<string.h>
void max(char s[]){
int sum=0,m=0,n=0,i;
for(i=0;i<=strlen(s);i++) {
if(s[i]!=' ')
sum++;
else
{
if(m<sum) {
m=sum;
n=i-1;
} sum=0;
}
}
for(i=n-m+1;i<=n;i++) {
printf("%c",s[i]);
}
}
int main(){
char str[100];
printf("请输入一行字符:\n");
gets(str);
printf("\n此字符串中最长的单词是:\n");
max(str);
printf("\n"); return 0;
}
//max()函数if(s[i]!=" ")改为if(s[i]!=‘ ’)
//max()函数返回值改为void
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include<string.h>
void
max(char
s[])
//函数返回值改为void
{
int
sum=0,m=0,n=0,i;
for(i=0;i<=strlen(s);i++)
{
if(s[i]!='
')
//改为if(s[i]!=‘
’)
即是字符而不是字符串
sum++;
else
{
if(m<sum)
{
m=sum;
n=i-1;
}
sum=0;
}
}
for(i=n-m+1;i<=n;i++)//
for条件控制错误,改为for(i=n-m+1;i<=m;i++)
{
printf("%c",s[i]);
}
}
int
main()
{
char
str[100];
printf("请输入一行字符:\n");
gets(str);
printf("\n此字符串中最长的单词是:\n");
max(str);
printf("\n");
return
0;
}
#include<string.h>
void
max(char
s[])
//函数返回值改为void
{
int
sum=0,m=0,n=0,i;
for(i=0;i<=strlen(s);i++)
{
if(s[i]!='
')
//改为if(s[i]!=‘
’)
即是字符而不是字符串
sum++;
else
{
if(m<sum)
{
m=sum;
n=i-1;
}
sum=0;
}
}
for(i=n-m+1;i<=n;i++)//
for条件控制错误,改为for(i=n-m+1;i<=m;i++)
{
printf("%c",s[i]);
}
}
int
main()
{
char
str[100];
printf("请输入一行字符:\n");
gets(str);
printf("\n此字符串中最长的单词是:\n");
max(str);
printf("\n");
return
0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个是作业吧??
算了,给你一个方法,你自己琢磨吧,直接给你答案太对不起你老师了!
#include
<stdio.h>
void
main()
{
int
a,b,c;
printf("请输入3个整数:");
scanf("%d%d%d",&a,&b,&c);
if((a>b)
&&
(a<c)
||
(a<b)
&&
(a>c))
printf("\n
%d
为位于中间的数\n",a);
if((b>a)
&&
(b<c)
||
(b<a)
&&
(b>c))
printf("\n
%d
为位于中间的数\n",b);
if((c>b)
&&
(c<a)
||
(c<b)
&&
(c>a))
printf("\n
%d
为位于中间的数\n",c);
}
这个是几个数中输出最大的数的!
希望对你有帮助,还是自己琢磨琢磨对你有好处~
算了,给你一个方法,你自己琢磨吧,直接给你答案太对不起你老师了!
#include
<stdio.h>
void
main()
{
int
a,b,c;
printf("请输入3个整数:");
scanf("%d%d%d",&a,&b,&c);
if((a>b)
&&
(a<c)
||
(a<b)
&&
(a>c))
printf("\n
%d
为位于中间的数\n",a);
if((b>a)
&&
(b<c)
||
(b<a)
&&
(b>c))
printf("\n
%d
为位于中间的数\n",b);
if((c>b)
&&
(c<a)
||
(c<b)
&&
(c>a))
printf("\n
%d
为位于中间的数\n",c);
}
这个是几个数中输出最大的数的!
希望对你有帮助,还是自己琢磨琢磨对你有好处~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include
<stdio.h>
#include
<string.h>
char
*FindLongWord(char
*szInBuff)
{
static
char
szLongWord[1024]
=
{0};
char
*lpstr;
const
char
*delim
=
",.?;'\"<>{!}[]\n
";
lpstr
=
strtok(szInBuff,
delim);
sprintf(szLongWord,
"%s",
lpstr);
while((lpstr
=
strtok(NULL,
delim))
!=
NULL)
{
if
(strlen(lpstr)
>
strlen(szLongWord))
{
sprintf(szLongWord,
"%s",
lpstr);
}
lpstr
=
strtok(NULL,
delim);
}
return
szLongWord;
}
int
main()
{
char
szInBuff[1024]
=
{0};
char
*lpszBestLongWord
=
NULL;
printf("输入一行英文句子,以回车结束:");
gets(szInBuff);
szInBuff[strlen(szInBuff)]
=
'
';
lpszBestLongWord
=
FindLongWord(szInBuff);
printf("%s\n",
lpszBestLongWord);
return
0;
}
不明白的加我msn:wy030@sina.com
<stdio.h>
#include
<string.h>
char
*FindLongWord(char
*szInBuff)
{
static
char
szLongWord[1024]
=
{0};
char
*lpstr;
const
char
*delim
=
",.?;'\"<>{!}[]\n
";
lpstr
=
strtok(szInBuff,
delim);
sprintf(szLongWord,
"%s",
lpstr);
while((lpstr
=
strtok(NULL,
delim))
!=
NULL)
{
if
(strlen(lpstr)
>
strlen(szLongWord))
{
sprintf(szLongWord,
"%s",
lpstr);
}
lpstr
=
strtok(NULL,
delim);
}
return
szLongWord;
}
int
main()
{
char
szInBuff[1024]
=
{0};
char
*lpszBestLongWord
=
NULL;
printf("输入一行英文句子,以回车结束:");
gets(szInBuff);
szInBuff[strlen(szInBuff)]
=
'
';
lpszBestLongWord
=
FindLongWord(szInBuff);
printf("%s\n",
lpszBestLongWord);
return
0;
}
不明白的加我msn:wy030@sina.com
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询