2013-04-15 90 views
2

我想知道是否有人可以帮我解决下面的代码片段问题。我想弄清楚的是如何将一个数组存储在另一个数组中。我尝试了所有我能想到的,但都是编译器出错。以下是我的代码片段,应该是足够的告诉你我的立场:将char数组存储到另一个数组中 - c

char min[20], max[20], input[20] ; 
printf("Enter word: "); 
scanf("%s", &input); 
min = input; max = input; 
+0

您应该放弃'&'或使用'fgets'。并循环复制数组。 – squiguy

+0

正如@squiguy所说,再加上在C中使用'strcpy'复制字符串。您可以轻松查看。 – Gene

回答

3
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

+0

谢谢,我之前使用过这个功能,但是它让我的思绪滑落了。特别是因为我目前正在使用C,Java和Python进行各种项目。此外,这是一个介绍C课程,其中教师鼓励我们使用scanf以简化操作,但是感谢您向我展示问题以供将来参考。 – ntharrison

1

memcpy是你的朋友:

char min[20], max[20], input[20]; 
memset(min,'d',19); 
min[19] = 0; 
memcpy(min,max,20); 
0

你应该尝试复制的字符串。

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'; 
2

我认为你必须输入复制到maxmin阵列。所以代码应该是

char min[20], max[20], input[20] ; 
printf("Enter word: "); 
scanf("%s", input); 
strcpy(min,input); 
strcpy(max,input); 
相关问题