Консультация № 178147
01.05.2010, 11:46
0.00 руб.
0 4 0
Доброго времени суток дорогие эксперты:

Требуется решить задачку на турбо С или на Code Block

Описать функцию char *get_word (int n), которая возвращает слово, введенное с клавиатуры, длиной не более n или пустой указатель, если длина слова больше n.

И соответсвтенно устроить проверку в программе функции

Обсуждение

Неизвестный
05.05.2010, 20:49
общий
Юдин Евгений Сергеевич:
Пожалуйста, уточните:
функция должна вернуть указатель на введенную пользователем строку, если ее длина не превышает допустимую, или именно указатель на слово. То есть, если пользователь ввел несколько слов, то нужно выделить первое слово и вернуть указатель на него и только на него, отбросив все остальное и предшествующие разделители.
Например:
ввод: "~!@#$%^& .--->Слово! Еще одно слово."
Результат: get_word(5) -> "Слово"; get_word(4) -> NULL
Если верно второе, то какие символы допустимы в слове (следовательно, все остальное - разделители) Или, наоборот: какие символы считать разделителями.
Неизвестный
06.05.2010, 14:12
общий
Имеется ввиду, что вводится 1 слово
Неизвестный
06.05.2010, 14:38
общий
Юдин Евгений Сергеевич:
А если пользователь решил поиздеваться над программой?

В общем, вопрос уже закрыт, но если так, то все очень просто:
воспользуйтесь функцией fgets( s, maxlen+2, stdin );
+2, потому что: 1 символ для конечного нуля и еще 1 символ - для '\n'.
Ну а дальше сами додумайте.
Неизвестный
12.05.2010, 16:11
общий
хорошо попробую спасибо
Форма ответа