我无法弄清楚这个程序有什么问题。我尝试过使用
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*"
但我得到的是五个空格,没有字符串。任何解决方案?
答案 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表示来源。