哪里错了?(C语言问题)

来源:百度知道 编辑:UC知道 时间:2024/05/15 05:42:46
#include<stdio.h>
#include<string.h>
int main()
{
char r1[10]="abc";
char r2[10]="def";
int i;

printf("strlen(r1)=%d\n",strlen(r1));

for(i=0;i<strlen(r2);i++)
{
printf("%c(%d)",r1[strlen(r1)+i]=r2[i],strlen(r1)+i);;
}
printf("\n");
r1[strlen(r1)+i]='\0';
printf("%s\n",r1);

}

需要加一个中间变量,因为strlen(r1)是变化的。
#include<stdio.h>
#include<string.h>
int main()
{
char r1[10]="abc";
char r2[10]="def";
int i,len;

printf("strlen(r1)=%d\n",len=strlen(r1));

for(i=0;i<strlen(r2);i++)
{
printf("%c(%d)",r1[len+i]=r2[i],len+i);;
}
printf("\n");
r1[strlen(r1)+i]='\0';
printf("%s\n",r1);
getchar();

}

当你赋值后strlen(r1)会计算长度,所以不能strlen(r1)+i
——----------------------------------------------
#include<stdio.h>
#include<string.h>
int main()
{
char r1[10]="abc";
char r2[10]="def";
int i;

printf("strlen(r1)=%d\n",strlen(r1));

for(i=0;i<strlen(r2);i++)
{
printf("%c(%d)",r1[strlen(r1)]=r2[i],strlen(r1));;
}
printf("\