2013-04-15 3 views
2

Мне интересно, может ли кто-нибудь помочь мне со следующим фрагментом кода. Я пытаюсь выяснить, как хранить один массив в другом. Я пробовал все, что мог придумать, но все это приводило к ошибкам компилятора. Ниже приведен фрагмент из моего кода, который должен быть достаточно показать вам, где я стою:Хранение массива символов в другом массиве - 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

Я думаю, вы должны скопировать вход в max и min массива. Поэтому код должен быть

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