Как убрать из строки все невидимые символы и сохранить специальные символы - PullRequest
0 голосов
/ 30 марта 2020

Я знаю, что это похоже на дубликат, но я не верю, что это так. Вполне возможно, что я имею в виду проблему кодирования с моим предоставленным форматом файла.

По сути, я проверяю на наличие общих символов перед вставкой hashmap. У меня стандартный ввод подключен так:

while(getline(cin, current, ' '){}

он выводит правильно, если вы просто печатаете то, что входит в стандартный вывод, но у меня есть дикая проблема, когда буква А всегда будет иметь sh до значения А, но не считается А. Я знаю, что вы думаете. Пробелы. Ну, я попытался удалить пробелы и вкладки и пробелы. но я думаю, что мне не хватает некоторых невидимых персонажей. Я даже пытался создать набор допустимых символов и удалить недопустимые символы. Все еще не повезло.

Каков надежный способ удаления всех невидимых символов из этих строк ввода? Это встроенная функция случайно?

1 Ответ

1 голос
/ 31 марта 2020

Если у вас есть строка и вы хотите удалить из нее все непечатаемые символы, чтобы она содержала только допустимые печатаемые символы, вы можете использовать std :: string :: erase , используя std :: remove_if в сочетании с лямбдой, которая сводит на нет результат std :: isprint - для эффективного удаления всех символов из строки, которые не печатают символы (включая пробелы) (как указано автор @someprogrammerdude в своем первоначальном комментарии)

Короткая функция, которая может работать с вашей строкой, чтобы стереть все непечатаемые символы: почему ваш ха sh из 'A' не 'A'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...