Форум программистов, компьютерный форум CyberForum.ru

Удалить из строки все слова, которые не являются идентификаторами - C++

Восстановить пароль Регистрация
 
Sasha0407
0 / 0 / 0
Регистрация: 15.06.2013
Сообщений: 29
29.03.2014, 01:26     Удалить из строки все слова, которые не являются идентификаторами #1
Задана строка, состоящая из символов. Символы объединяются в слова. Слова друг от друга отделяются одним или несколькими пробелами. В конце текста ставится точка. Текст содержит не более 255 символов. Выполнить ввод строки, используя функцию gets(s) .Удалить из строки все слова, которые не являются идентификаторами.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2014, 01:26     Удалить из строки все слова, которые не являются идентификаторами
Посмотрите здесь:

C++ Удалить из строки все слова, которые начинаются на заглавную букву
C++ Удалить из строки слова, которые оканчиваются на гласную
Удалить из массива все элементы, которые не являются однозначными или двухзначными. C++
C++ Удалить из текста все слова, которые расположены после запятой
Ввести строку. Выдать все слова, которые имеют длину больше, чем длина последнего слова строки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
29.03.2014, 02:27     Удалить из строки все слова, которые не являются идентификаторами #2
Идентификаторами чего? Уточните, пожалуйста.
Sasha0407
0 / 0 / 0
Регистрация: 15.06.2013
Сообщений: 29
29.03.2014, 02:52  [ТС]     Удалить из строки все слова, которые не являются идентификаторами #3
Я и сам не понимаю...но делать надо....помогите разобраться
С инета:
Идентификатор — это последовательность символов, используемая для обозначения одного из следующих элементов:


Имени объекта или переменной


Имени класса, структуры или объединения


Имени перечисленного типа


Члена класса, структуры, объединения или перечисления


Функции или функции члена класса


Имени определения типа (typedef)


Имени метки


Имени макроса


Параметра макроса
IrineK
Заблокирован
29.03.2014, 02:57     Удалить из строки все слова, которые не являются идентификаторами #4
Возможно, имеются в виду ключевые слова языка С++?
Они, по ходу, являются зарезервированными идентификаторами.

Т.е., мы убираем все слова, кроме:
auto double int struct break else long switch register tupedef char extern return void case float unsigned default for signed union do if sizeof volatile continue enum short while
Sasha0407
0 / 0 / 0
Регистрация: 15.06.2013
Сообщений: 29
29.03.2014, 03:15  [ТС]     Удалить из строки все слова, которые не являются идентификаторами #5
по-моему нет, я думаю что там подразумевалось проверить слова реализованные в тексте (gets(s)) на возможность использования в качестве идентификатора....но я не знаю как это реализовать

Добавлено через 39 секунд
я не знаю вообщем
IrineK
Заблокирован
29.03.2014, 03:32     Удалить из строки все слова, которые не являются идентификаторами #6
Ну тогда так.

1) Проверяем слово на соответствие алфавиту. Алфавит для идентификаторов: прописные и строчные буквы английского языка, цифры и нижнее подчеркивание т.е.:
_ a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9

2) Проверяем первый знак. Это должен быть либо символ подчеркивания, либо прописная или строчная буква, т.е. нельзя начинать с цифры.

3) Проверяем длину. По стандарту ANSI 6 символов (внешний идентификатор), но, для нашего времени это жестоко. Например, компилятор MS разрешает использовать до 247 символов. Возьмем 247 за основу.

4) Проверяем на совпадение с ключевыми словами. Ключевые слова использовать нельзя - они не могут быть идентификаторами пользователя. Список ключевых слов можно держать в файле или в массиве, по желанию.
Yandex
Объявления
29.03.2014, 03:32     Удалить из строки все слова, которые не являются идентификаторами
Ответ Создать тему
Опции темы

Текущее время: 03:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru