C语言,编写一个程序,输入若干字符串,找出其中最长的字符串并输出。要用指针数组存放这些字符串,并要 20
C语言,编写一个程序,输入若干字符串,找出其中最长的字符串并输出。要用指针数组存放这些字符串,并要结合函数实现。求思路以及代码,谢谢...
C语言,编写一个程序,输入若干字符串,找出其中最长的字符串并输出。要用指针数组存放这些字符串,并要结合函数实现。求思路以及代码,谢谢
展开
4个回答
展开全部
你可以写一个探测字符长度的函数:
# include <stdio.h>
//获取字符长度的函数:
int GetCharLong(char * C_P) {
int aa = 0;
while (1) {
if (*C_P == '\0') {
return aa;
}
C_P++;
aa++;
}
}
int main{
char a []="abc123";
char b []="123defw";
int aa = GetCharLong(a);
int bb = GetCharLong(b);
if (aa > bb){
printf("第一串长!%s\n", a);
}
else if (aa < bb){
printf("第二串长!%s\n", b);
}
else{
printf("两串字符一样长!");
}
return 0;
}
# include <stdio.h>
//获取字符长度的函数:
int GetCharLong(char * C_P) {
int aa = 0;
while (1) {
if (*C_P == '\0') {
return aa;
}
C_P++;
aa++;
}
}
int main{
char a []="abc123";
char b []="123defw";
int aa = GetCharLong(a);
int bb = GetCharLong(b);
if (aa > bb){
printf("第一串长!%s\n", a);
}
else if (aa < bb){
printf("第二串长!%s\n", b);
}
else{
printf("两串字符一样长!");
}
return 0;
}
追答
因为字符串一般是以‘\0’为结尾,据此写一个循环,每循环一次,就看看该次数的字符是否为'\0'。若发现是\0,就把本次循环的次数返回。此时循环的次数就是字符串的长度。
得到字符长度就好办了,直接将字符长度进行比较,看那个长就输出行了呗~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int strcmp(char *s,char *t)
{
for(;*s&&*t&&*s++==*t++;);
return(*s-*t);
}
#include<stdio.h>
#include<malloc.h>
#include<string.h>
int main()
{char *p[20];
int n,i,max=0,maxi=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
p[i]=(char *)malloc(20);
scanf("%s",p[i]);
if(strlen(p[i])>max)
{
max=strlen(p[i]);
maxi=i;
}
}
printf("\n%s\n",p[maxi]);
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include <string.h>
int main (void)
{
int n;
char str[1000];
char Max[1000];
scanf ("%d", &n);
for(int i = 0; i < n; i++)
{
scanf("%s", &str);
if(i==0) strcpy(Max, str);
if (strlen(Max)<strlen(str))
{
strcpy(Max, str);
}
}
printf ("The longest is: %s", Max);
return 0;
}
//by 紫阳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询