作者在 2011-05-16 22:20:28 发布以下内容
将已经升序排好的字符串a和字符串b按升序归并到字符串c中并输出。
比如:please input string a:
abcegiklnt
please input string b:
dfmopsyz
abcdefgiklmnopstyz
开始代码:
#include<stdio.h>
#include<string.h>
main()
{
int i=0,j=0,k=0;
char a[100],b[100],c[100],*p;
printf("please input string a:\n");
scanf("%s",a);
printf("please input string b:\n");
scanf("%s",b);
while(a[i]!='\0'&&b[j]!='\0') /********************************************
{
if(a[i]<b[j])
{
c[k]=a[i];
i++;
}
else 先把那个较小的字符串放到c中
{
c[k]=b[j];
j++;
}
k++;
} ***********************************************/
c[k]='\0'; /*构成一个完整的字符串*/
if(a[i]=='\0') /*判断a中的字符串是否完全复制到c中*/
p=b+j; /*p指向数组b只未复制到c的位置*/
else
p=a+i; /*p指向数组a中未复制到c的位置*/
strcat(c,p);
puts(c);
}
#include<string.h>
main()
{
int i=0,j=0,k=0;
char a[100],b[100],c[100],*p;
printf("please input string a:\n");
scanf("%s",a);
printf("please input string b:\n");
scanf("%s",b);
while(a[i]!='\0'&&b[j]!='\0') /********************************************
{
if(a[i]<b[j])
{
c[k]=a[i];
i++;
}
else 先把那个较小的字符串放到c中
{
c[k]=b[j];
j++;
}
k++;
} ***********************************************/
c[k]='\0'; /*构成一个完整的字符串*/
if(a[i]=='\0') /*判断a中的字符串是否完全复制到c中*/
p=b+j; /*p指向数组b只未复制到c的位置*/
else
p=a+i; /*p指向数组a中未复制到c的位置*/
strcat(c,p);
puts(c);
}