我可以问我的代码有什么问题吗? strcpy似乎只在函数内部工作。但是,当我将它传递给另一个函数时,第一个数组打印好,但其他数组打印不正确?
我的代码似乎有什么问题以及正确的方法是什么?
以下是代码:
void copyString(char *data, int ctr){
int i;
char constData[10][50] = {{"Hello"}, {"Goodbye"}, {"Konichiwa"}, {"Sayonara"},
{"Ni Hao"}, {"Zai Jian"}, {"Annyeong Haseyo"},
{"Annyeonghi Gaseyo"}, {"Bonjour"}, {"Au Revoir"}};
char temp[50][100];
strcpy(temp[ctr], constData[ctr]);
if (ctr == 4)
for(i = 0; i <=ctr; i++)
printf("In function: %s\n", temp[i]);
strcpy(&data[ctr], temp[ctr]);
}
int main() {
int i = 0, ctr = 0;
char data[20][10];
for (ctr = 0; ctr <= 4; ctr++)
copyString(data[ctr], ctr);
printf("\n");
for(i = 0; i <= 4; i++)
printf("%s\n", data[i]);
return 0;
}
输出给了我这个:
功能:你好 功能:再见
功能:Konichiwa
功能:Sayonara
在功能:倪浩
你好
一个
一个
但输出应该是这样的:
功能:你好 功能:再见
功能:Konichiwa
功能:Sayonara
在功能:倪浩
你好
再见
Konichiwa
再见
倪昊
提前谢谢!
答案 0 :(得分:0)
这是你的罪魁祸首:
strcpy(&data[ctr], temp[ctr]);
这应该是:
strcpy(data, temp[ctr]);