Ввод ввода в C - PullRequest
       19

Ввод ввода в C

0 голосов
/ 11 июня 2019

Я новичок в программировании на С, поэтому, пожалуйста, будьте добры!Я пытаюсь решить некоторые проблемы начинающих практиковать, и тот, на котором я сейчас работаю, нуждается во мне для ввода текста.В кратком коде ниже все будет записано до 1-го пробела.после этого ничего не появляется во время отладки.

Я попробовал 1-ую инструкцию get, но она не скомпилируется, хотя я следовал примерам онлайн

#include <stdio.h>
#include <string.h>

int main(void) {
char stringcapture[500];
scanf("%s", stringcapture);

LongestWords(stringcapture);       
return 0;
}

Так что я пытаюсь пройти'stringcapture' в функцию длинных слов.Однако все, что захватывается и, следовательно, передается, это 1-е слово до вводимого пробела

1 Ответ

2 голосов
/ 11 июня 2019

"%s" захватить только слово и остановку захвата при получении пробела.Таким образом, захват остановится в первом найденном месте, поэтому вы получили только 1 слово. Используйте следующий шаблон:

scanf("%[^\n\r]", str);

"%[^\n\r]" означает захват всех символов до получения "\r" или "\n"

Чтобы предотвратить переполнение буфера в исходном коде, вы должны указать максимальное количество символов захвата.Используйте следующий шаблон

char str[500];
scanf("%499[^\n\r]", str);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...