【问题标题】:strcpy 2D Array problems in functions函数中的 strcpy 2D 数组问题
【发布时间】:2013-08-10 03:56:39
【问题描述】:

请问我的代码有什么问题吗? 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;
}

输出给了我这个:

在函数中:你好
功能:再见
功能:小一和
功能:Sayonara
在职:倪好

你好


一个
一个

但是输出应该是这样的:

在函数中:你好
功能:再见
功能:小一和
功能:Sayonara
在职:倪好

你好
再见
小一波
再见
你好

提前谢谢你!

【问题讨论】:

    标签: arrays string function copy strcpy


    【解决方案1】:

    这是你的罪魁祸首:

    
    strcpy(&data[ctr], temp[ctr]);
    

    这应该是:

    
    strcpy(data, temp[ctr]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 2014-11-12
      • 1970-01-01
      相关资源
      最近更新 更多