一、假设有两个字符串"abc"和"1234",将它们连接起来并输出
#include<stdio.h>
#include<string.h>
int main()
{
char a[10]="abc";
char b[4]="1234";
int i,la;
la=strlen(a);
for(i=0;i<4;i++)
a[la+i]=b[i];
for(i=0;i<10;i++)
printf("%c",a[i]);
}
运行结果是:
这个问题不难,但也有几个细节需要注意:
①数组b不可以定义为整型数组,如果写成int b[4]={1,2,3,4}则输出时连接不起来,因为与数组a类型不同;
②输出时要写%c,用循环语句逐个输出字符,不能写成%s或不用循环,因为字符串没法一步到位都输出来。
二、改进上述问题,要求随机输入两个字符串,连接起来并输出。
#include<stdio.h>
#include<string.h>
int main()
{
char a[20]={'\0'},b[10]={'\0'};//初始化
//不论字符或数字,都定义为字符型数组,否则没法连接
int i,la,lb;
printf("输入两个字符串,用空格隔开:\n");
scanf("%s%s",&a,&b);
la=strlen(a);//strlen()函数获取字符串长度,位于库函数<string.h>中
lb=strlen(b);
for(i=0;i<lb;i++)
a[la+i]=b[i];
for(i=0;i<(la+lb);i++)
printf("%c",a[i]);//逐个输出字符,用%c而不是%s
}
运行结果为: