编写函数void fun(char *s,char *b,char *c),逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或相

编写函数void fun(char *s,char *b,char *c),逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c数组中,形成一个新的字符串。例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串应为:aBcdeFgH。
#include<stdio.h>
void fun(char *a,char *b,char *c)
{
}
void main()
{char s1[80],s2[80],s3[80];
gets(s1);
gets(s2);
fun(s1,s2,s3);
puts(s3);
}

void fun(char *a,char *b,char *c)//字符默认以ascii比较大小,所以可以直接对字符比较大小
{int i,j,k=0;
for(i=0,j=0;a[i]!=0&&b[j]!=0;i++,j++)//字符串的结束字符是'/0',它的ascii码是0,所以结束条件是a[i]!=0
if(a[i]<b[j]) c[k++]=b[j];
else c[k++]=a[i];
}
if(a[i]!=0)//把剩下的并到c中
{ for(;a[i]!=0;i++)
c[k++]=a[i];
}
if(b[j]!=0)//把剩下的并到c中
{ for(;b[j]!=0;j++)
c[k++]=b[j];
}
这是一个典型的C语言二级机试题.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-01
void fun(char *a,char *b,char *c)
{
while((*a!='\0')&&(*b!='\0'))
{
if(*a>=*b)
{
*c = *a;
c++;
}
a++;
b++;
}
}本回答被提问者和网友采纳
第2个回答  2010-12-01
void fun(char *a,char *b,char *c)
{
int i;
int len;
len=strlen(a)<strlen(b)?strlen(b):strlen(a);
for(i=0;i<len;i++)
{
if(&a=='\0')
&(c+i)=&(b+i);
else if(&b=='\0')
&(c+i)=&(a+i);
else
&(c+i)=&(b+i)>&(a+i)?&(a+i):&(b+i);
}
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网