我是c语言编程的新手,并且想编写一个具有以下要求的程序:
输入:输入的数量为n,然后为n个输入字符,例如3个欢迎输入hku
输出连接的字符,例如,welcomhku
但是,我发现一个问题,当我将以下代码提交给c自动检查平台时,输出为~~~~ welcometohku而不是welcometohku。
有人想在这个问题上给予帮助吗?非常感谢大家。
#include<stdio.h>
#include<string.h>
int main(){
int num; /* array with 50 elements */
int i = 0;
char iarray1[100];
/* read array */
scanf("%d", &num);
char iarray[num][100];
for (i = 0; i < num; i++) {
scanf("%s", iarray[i]);
}
/* print array elements in reverse order */
for (i = 0; i < num; i++) {
strcat(iarray1,iarray[i]);
}
//display the concatenated string
printf("%s",iarray1);
return 0;
}
答案 0 :(得分:1)
您需要初始化iarray1
尝试
char iarray1[100] = {0};
原因是未初始化的iarray1
可能包含任何值。因此,当您执行第一个strcat
时,可能会发生您要连接的字符串附加到某些gargabe值的情况。