C语言中字符串的长度如何比较?例如:输入5个字符,输入其中最长的字

符串。

可以用strlen函数来求取字符串的长度,然后进行比较,得出最长的字符串,然后输出即可
示例代码如下:
#include<stdio.h>
#include<string.h>
void main()
{
char s[5][20];

int a[5]; //用于储存字符串长度的数组

int i,max;

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

{

gets(s[i]); //输入字符串

a[i]=strlen(s[i]); //求取字符串长度,并用数组保存

}

max=a[0];

for(i=0;i<5;i++)
if(a[i]>max)

max=a[i];

for(i=0;i<5;i++)
{

if(a[i]==max)

{

puts(s[i]);

break;

}

}

}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-19

参考代码:

#include <stdio.h>
#include <string.h>
int main()
{
    int i;
    char sx[80], max[80];
    scanf("%s", max);
    for(i=1;i<5;i++){
     scanf("%s", &sx);
    if(strcmp(max,sx)>0)
         strcpy(max,sx);
    }
    printf("max is: %s\n",max);
    return 0;
}

本回答被网友采纳
第2个回答  2017-12-19
#include<stdio.h>
#include<string.h>
int main()
{
int i;
char a[100],max[100];
scanf("%s",a);
strcpy(max,a);
for(i=0;i<4;i++){
scanf("%s",a);
if(strlen(max)<strlen(a))
strcpy(max,a);
}
printf("%s\n",max);
return 0;
}
^-^
用strlen来比较长度就好啦

C语言中字符串的长度如何比较?例如:输入5个字符,输入其中最长的字
可以用strlen函数来求取字符串的长度,然后进行比较,得出最长的字符串,然后输出即可 示例代码如下:include<stdio.h> include<string.h> void main(){ char s[5][20];int a[5]; \/\/用于储存字符串长度的数组 int i,max;for(i=0;i<5;i++){ gets(s[i]); \/\/输入字符串 a[i]=...

输入5个字符串,输出其中最长的字符串。
char s[80]={""},max[80]={""};printf("输入五个字符串:\n");scanf("%s",s);strcpy(max,s);for(i=1;i<5;i++){ scanf("%s",s);if(strcmp(max,s)<0)strcpy(max,s);} printf("最长的字符串是:%s\n",max);return...

C语言找出最长的字符串。输入5个字符串,输入其中最长的字符串。
int main(){ int i = 0;char s[80] = {""}, max[80] = {""};printf("输入五个字符串:\\n");scanf("%s",s);strcpy(max,s);for(i=1; i<5; i++){ scanf("%s",s);if( strcmp(max,s)<0 )strcpy(max,s);} printf("最大的字符串是:%s \\n",max);return 0;} ...

C语言输入五个字符串,找出最长的字符串,长度不够的在字符左边用*补齐后...
include<stdio.h> include<string.h> int main(){ char a[6][50],s[50];int max=0;for(int i=0;i<5;i++){ gets(a[i]);if(strlen(a[i])>max){ max=strlen(a[i]);\/\/记录最长字符串的长度;strcpy(s,a[i]);\/\/记录最长的字符串 } } printf("max=(%s)\\n",s);for(int...

...下面这段代码的作用是从五个字符串中找出最长的那个,
1.对指针的概念有点混淆;2.fun函数中strcmp是用来比较字符串大小的(比的是ascii码值,而不是字符串长度),你是找最长的那个,所以应该用strlen来做比较;3.在fun函数中,如果发现sp比sq[i]的字符串长度小,不应该把sq[i]这个指针去赋给sp,而应该用strcpy把整个字符串赋值过去。修改如下:includ...

C语言编程:输出由键盘输入的n个字符串中最长的字符串。咋做?
if(scanf("%d",&n)==1 && n>0){\/\/输入字符串个数n q=(char *)malloc(sizeof(char)*N*n);\/\/由n申请空间 if(!q || (str=(char **)malloc(sizeof(char *)*n))==NULL){ printf("Application memory failure, exit...\\n");return 0;\/\/申请不成功则退出 } for(str[i=0]=...

c语言。字符串中的最长单词
int fun(const char *str, char *word){ int max = 0, count = 0;int i = 0, j, k;while (str[i]){ if (str[i] == ',' || str[i] == '.'|| str[i] == '!' || str[i] == ' ' || str[i] == '\\t'){ k = 0;if (max < count){ max = count;for ...

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记录字符串开始下标...

C语言编程:写一个函数,输入一行字符,将此字符串中最长的单词输出.
void main(){ int a,b,c;printf("请输入3个整数:");scanf("%d%d%d",&a,&b,&c);if((a>b)&& (a<c)|| (ac))printf("\\n d 为位于中间的数\\n",a);if((b>a)&& (b<c)|| (bc))printf("\\n d 为位于中间的数\\n",b);if((c>b)&& (c<a)|| (ca))printf("\\n...

C语言用函数求字符串中最长单词.
currLen++;} if(currLen>maxLen)\/\/当前单词的长度大于最大值,进行赋值 { maxLen = currLen;MaxStart = currStart;} if(str[i]==' ')\/\/遇到空格,即一个单词已经结束。{ currLen = 0;} } for(j=MaxStart;j<MaxStart+maxLen;j++)printf("%c",str[j]);} 运行效果:...

相似回答