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

С++ под Linux

Войти
Регистрация
Восстановить пароль
 
offmonreal
0 / 0 / 0
Регистрация: 20.12.2016
Сообщений: 9
#1

Проверка на непечатаемый символ - C++ Linux

20.12.2016, 15:09. Просмотров 430. Ответов 3
Метки нет (Все метки)

Есть некий массив char * прежде чем скормить его string хотел проверить на непечатаемые символы (на случай ошибки)
Русские буквы могут занимать 2 байта а енглиш 1 байт а китайские ероглифы еще как-то наверно...
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2016, 15:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверка на непечатаемый символ (C++ Linux):

Определить непечатаемый символ - MS Word
Нужна помощь, необходимо определить непечатаемый символ. После копирования необходимого материала с сайта в большом объеме имеются...

Непечатаемый символ при использовании include - PHP
Делаю календарь. Календарь представляет собой таблицу, которая строится отдельным файлом kalend.php. Если я подключаю kalend.php командой...

Как автоматически удалить непечатаемый символ в ячейке - MS Excel
Подскажите, пожалуйста, как автоматически удалить непечатаемый символ в ячейках (B7:B14) второго столбца. Файл прилагаю.

Проверка на символ @ - Visual Basic
Здравствуйте, столкнулся с такой проблемой не могу найти код для проверки на знак "@" Нашел вот такой код но что-то не так не принимает...

Проверка на запрещающий символ - Delphi
Имеется некоторая строка - название папки или файла (без точки и расширения). Скажите, существует ли какое-нибудь константное множество...

Проверка строки на символ - C++
Ретбятууу, че то не допирает до меня один метод я завожу переменную int n; какое мне поставить условие, чтобы проверить введенное число...

3
Dovgon
115 / 86 / 26
Регистрация: 08.04.2010
Сообщений: 538
20.12.2016, 21:42 #2
Какая кодировка?
0
Humanoid
Почетный модератор
9846 / 3743 / 168
Регистрация: 12.06.2008
Сообщений: 11,480
20.12.2016, 22:45 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Dovgon Посмотреть сообщение
Какая кодировка?
Судя по
Цитата Сообщение от offmonreal Посмотреть сообщение
Русские буквы могут занимать 2 байта а енглиш 1 байт
видимо, UTF-8.

Так как речь идёт о юникоде, тогда появляется вопрос о том, какие символы вы называете непечатными? Все нерусские и не английские? Или только символы, с номером меньше 32 ? Меньше, чем пробел (символ с номером 32) всё можно назвать непечатными, кроме переводов строки (10 ('\n') и 13 ('\r')). Все остальные символы вполне себе печатные.

Можно заморочится и проверить целостность кодировки. Например, если посмотреть описание кодировки на Википедии, то там видно, как кодируется UTF-8. Можно написать свою функцию перевода из UTF-8 в юникод, попутно проверяя, что количество байт для каждого символа верное. Например, если текущий байт 0xxxxxxx, то следом никак не может идти байт 10xxxxxx. Или если текущий байт 110xxxxx, то следом должен быть только один байт 10xxxxxx и т.д.

А заодно можно проверять значение юникодовского символа (отсеивать слишком маленькие (до пробела, кроме перевода строки) и слишком большие). А можно заморочится и вообще по списку сверять.
0
offmonreal
0 / 0 / 0
Регистрация: 20.12.2016
Сообщений: 9
21.12.2016, 12:46  [ТС] #4
Humanoid
Благодарю за ответ, и отдельно за то какой он подробный.
А еще вчера я думал что все добрые люди вымерли...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2016, 12:46
Привет! Вот еще темы с ответами:

Проверка на символ в TextBox.Text - C#
Здравствуйте, есть один вопрос. Пишу программу: Обмен валют. Проверяю чтобы в textbox не было букв и лишних символов, так вот в чем...

Проверка массива на определенный символ - Pascal ABC
Дан массив a:array of char; a; i,j:integer; У которого 4 столбец наполнен символами Д и Н. Как в каждой строке 4-го столбца массива(a),...

Проверка ввода. Символ 'а' (rus) - C++
В функции main присутствует проверка: for(;;){ cout << "Введите количество дисков (0-выход): "; fflush(stdin); ...

Символ & и проверка на существование файла - C#
1) Почему при вводе в свойство Text какой-либо кнопки например следующей строки: «&Удалить». В графическом редакторе формы первая буква...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
21.12.2016, 12:46
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru