Могу я спросить, что не так с моим кодом? 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;
}
Результат дал мне это:
Выполняется функция: Hello
Выполняется функция: Goodbye
Выполняется функция: Konichiwa
Выполняется функция: Sayonara
Выполняется функция: Ni Hao
Hello
a
а
Но вывод должен быть таким:
Выполняется функция: Hello
Выполняется функция: Goodbye
Выполняется функция: Konichiwa
Выполняется функция: Sayonara
Выполняется функция: Ni Hao
Hello
Goodbye
Konichiwa
> Сайонара
Ни Хао
Заранее спасибо!