替代strcpy?或修复程序中的strcpy?

时间:2016-02-04 14:49:51

标签: c string stdio strcpy strncpy

我无法弄清楚这个程序有什么问题。我尝试过使用

                      strncpy(text,array[ ],sizeof(text)) 

已经但是没有解决任何问题。我需要的是一种复制字符串的简单方法,如pascal语言,其中可以使用简单的等号来复制字符串(或者可以执行此操作的生成函数)。这是源代码:

#include <stdio.h>
#include <string.h>

int x,y;

char array[10][10];
int choice;
char text[5];


int main()
 {
    for(x=0;x<5;x++)
     {
        printf("ENTER text: ");
        scanf("%s", text);   
        strcpy (text,array[x]);
     }

     for (y=0;y<5;y++)
      {
        printf("\n");
        printf("%s", array[y]);
      }
    return 0;
 }

输出应该是这样的;

"*string*"
"*string*"
"*string*"
"*string*"
"*string*"

但我得到的是五个空格,没有字符串。任何解决方案?

3 个答案:

答案 0 :(得分:5)

本声明

strcpy (text,array[x]);

无效。我想你的意思是

strcpy( array[x], text );

考虑到你应该写

scanf("%4s", text); 
       ^^^^

答案 1 :(得分:1)

strcpy (text,array[x]);       

而不是这个,你应该试试这个 -

strcpy (array[x],text);

strcpy的第一个参数是目的地,第二个参数是来源。

答案 2 :(得分:1)

您正以错误的顺序将参数传递给strcpy

请参阅http://linux.die.net/man/3/strcpy

  

char * strcpy(char * dest,const char * src);

dest表示目的地,src表示来源。