【发布时间】:2016-05-14 05:59:07
【问题描述】:
我不知道这个程序有什么问题。我试过使用
strncpy(text,array[ ],sizeof(text))
已经解决了,但这并没有解决任何问题。我需要的是一种简单的复制字符串的方法,就像在帕斯卡语言中一样,可以使用简单的等号来复制字符串(或可以执行此操作的生成函数)。这是源代码:
#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*"
但我得到的只是五个空格,没有字符串。有什么解决办法吗?
【问题讨论】:
-
strcpy (text,array[x]);-->strcpy (array[x], text); -
它是
strcpy(destination, source),你是倒着做的,所以你将一个空数组复制到text -
好的,简单的错误,谢谢,但真正的问题是 strcpy 有什么替代品吗?
-
“真正的问题是 strcpy 的替代品” 这不是 X-Y 问题吗?真正的问题是您没有正确使用
strcpy。为什么要重新发明运行良好的库函数(一旦你知道如何)? -
我很好奇为什么有人认为
"*string*"在使用scanf("%s", text);时会适合char text[5];?
标签: c string stdio strcpy strncpy