我想知道是否有人可以帮我解决以下代码片段。我想弄清楚的是如何将一个数组存储在另一个数组中。我已经尝试了我能想到的一切,但都导致了编译器的错误。以下是我的代码中的一个片段,应该足以告诉我我的立场:
char min[20], max[20], input[20] ;
printf("Enter word: ");
scanf("%s", &input);
min = input; max = input;
答案 0 :(得分: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
的声明。
答案 1 :(得分:2)
我认为您必须将输入复制到max
和min
数组中。所以代码应该是
char min[20], max[20], input[20] ;
printf("Enter word: ");
scanf("%s", input);
strcpy(min,input);
strcpy(max,input);
答案 2 :(得分:1)
memcpy
是你的朋友:
char min[20], max[20], input[20];
memset(min,'d',19);
min[19] = 0;
memcpy(min,max,20);
答案 3 :(得分: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';