我想知道是否有人可以帮我解决下面的代码片段问题。我想弄清楚的是如何将一个数组存储在另一个数组中。我尝试了所有我能想到的,但都是编译器出错。以下是我的代码片段,应该是足够的告诉你我的立场:将char数组存储到另一个数组中 - c
char min[20], max[20], input[20] ;
printf("Enter word: ");
scanf("%s", &input);
min = input; max = input;
我想知道是否有人可以帮我解决下面的代码片段问题。我想弄清楚的是如何将一个数组存储在另一个数组中。我尝试了所有我能想到的,但都是编译器出错。以下是我的代码片段,应该是足够的告诉你我的立场:将char数组存储到另一个数组中 - c
char min[20], max[20], input[20] ;
printf("Enter word: ");
scanf("%s", &input);
min = input; max = input;
char min[20], max[20], input[20] ;
printf("Enter word: ");
scanf("%s", input);
strcpy(min, input);
strcpy(max, input);
这是你怎么做。请注意,我也删除了scanf
中的&
。
scanf
是不是一个很好用的功能 - http://c-faq.com/stdio/scanfprobs.html
#include <string.h>
获得的声明strcpy
。
谢谢,我之前使用过这个功能,但是它让我的思绪滑落了。特别是因为我目前正在使用C,Java和Python进行各种项目。此外,这是一个介绍C课程,其中教师鼓励我们使用scanf以简化操作,但是感谢您向我展示问题以供将来参考。 – ntharrison
memcpy
是你的朋友:
char min[20], max[20], input[20];
memset(min,'d',19);
min[19] = 0;
memcpy(min,max,20);
你应该尝试复制的字符串。
strncpy(input, min, sizeof(min)-1);
strncpy(input, max, sizeof(max)-1);
//to be careful
min[sizeof(min)-1] = '\0';
max[sizeof(max)-1] = '\0';
我认为你必须输入复制到max
和min
阵列。所以代码应该是
char min[20], max[20], input[20] ;
printf("Enter word: ");
scanf("%s", input);
strcpy(min,input);
strcpy(max,input);
您应该放弃'&'或使用'fgets'。并循环复制数组。 – squiguy
正如@squiguy所说,再加上在C中使用'strcpy'复制字符串。您可以轻松查看。 – Gene