Прочитать строку из 7 символов в C

#c #string

#c #строка

Вопрос:

У меня есть:

 char M[20] = "abcdabcdabcdabcd";
  

Я могу либо распечатать ее как строку, либо как символы:

 printf("%sn", M); //print as string

for(i = 0;str[i] != '';i  ) //print as characters
    {
        printf("%c",str[i]);
    }
  

Я хочу прочитать строку из 7 символов и сохранить ее в M таким образом, чтобы впоследствии, когда я печатаю ее как строку и как символы, которые я получаю (при условии, что введенные 7 символов: ABCDEFG):

 ABCDEFG //output of printf("%sn", M); when printed as string
ABCDEFG abcdabcd //output of the for loop above
  

Мой ответ:

 for(K = 0;K<7;K  )
{
  scanf(" ", amp;M[K]);
}
  

но вышеприведенное работает не так, как должно.

Редактировать:

он выводит

  ABCDEFGdabcdabcd
  

для обоих случаев.

Комментарии:

1. » … но вышеприведенное работает не так, как должно». но что именно делает?

Ответ №1:

Вы должны добавить оператор : M[7] = '' . Последним символом строки должен быть ».

Комментарии:

1. Я не знаю, почему люди отвергают мой вопрос и ваш ответ. Странно. Ваш ответ был очень полезен.

2. @Lisanne: Как этот ответ соответствует вашим требованиям: » … таким образом, что впоследствии, когда я печатаю его в виде строки и в виде символов, я получаю (при условии, что введенные 7 символов: ABCDEFG): ABCDEFG //output of printf("%sn", M); when printed as string ABCDEFG abcdabcd //output of the for loop above »

3. размещение его ответа под кодом scanf(» «, amp;M[K]); дает правильный вывод, а именно ABCDEFG //вывод printf(«%s n», M); при печати в виде строки и ABCDEFG abcdabcd // вывод цикла for выше