Символьные константы с обратным слэшем
Заключение символов в одинарные кавычки применимо для большинства печатаемых символов, но некоторые, как, например, возврат каретки, невозможно ввести с клавиатуры. С этой целью С использует специальные константы с обратным слэшем, показанные в таблице.
Код | Значение |
---|---|
\b | Забой |
\f | Перевод формата |
\n | Новая строка |
\r | Возврат каретки |
\t | Горизонтальная табуляция |
\» | Двойная кавычка |
\’ | Одинарная кавычка |
\0 | Нулевой символ |
\\ | Обратный слэш |
\v | Вертикальная табуляция |
\a | Звонок |
\N | Восьмеричная константа (N — это восьмеричное значение) |
\xN | Шестнадцатеричная константа (N — это шестнадцатеричное значение) |
Символы с обратным слэшем следует использовать таким же образом, как и обычные символы.
в результате первого присваивания переменная ch получает символ табуляции, после чего печатается строка «тестовая сторока» с переводом курсора на новую строку.
Как вывести в строку знак : /
В общем пытаюсь сделать отчет и в отчете должны быть сырые данные *.bin битники (точнее где они лежат ) . Но выходной фаил *.txt обрабатывает LATEX и приводит к формату .rtf . Проблема заключается что битники лежат в файле MA_Check (название изменить нельзя) , и чтобы латех отобразил _ надо ввести /_ но в Qt это команда «строка коментов» . Что делать как быть .
char str[] = "Hello/World/"; size_t count = std::strlen(str); int j = 0; for (int i = 0; i j = j+1; qDebug() qDebug() else < str1[t] = str[i]; >// qDebug() else < str1[t] = str[i]; >> qDebug() setupUi(this);
Отслеживать
5,208 18 18 серебряных знаков 40 40 бронзовых знаков
задан 24 ноя 2015 в 9:33
2,907 7 7 золотых знаков 44 44 серебряных знака 92 92 бронзовых знака
первым делом — у вас в коде строка str1[t] = ‘\’; неверна, этот слеш используется для ввода спец символов. чтобы ввести именно его, нужно написать str1[t] = ‘\\’;
24 ноя 2015 в 9:36
К чему все эти манипуляции с символами? Если уж используете Qt , так пользуйтесь функционалом QString : QString::replace(const QString& before, const QString& after) .
24 ноя 2015 в 9:49
А вообще, не очень понятно что вам надо. Приведите пример двух строк: строка, которую вы имеете, и строка, которую вам надо получить.
24 ноя 2015 в 9:51
Ничего не понятно. Что у вас входной файл? Чем он обрабатывается сначала и что получается? Чем он обрабатывается потом, и что получается. Опишите проблему по шагам.
24 ноя 2015 в 16:43
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
У вас ошибка в этом месте:
if(str[i] == '_') < str1[t] = '\'; // ошибка здесь t = t+1; str1[t] = '/'; // здесь правильно >
В Си и Си++ символ \ внутри строковых и символьных литералов играет роль экранирующего. Это означает что следующий за ним символ воспринимается компилятором либо как символ форматирования, либо если это замыкающий символ литерала ( » для строковых и ‘ для символьных) как продолжение этого литерала. Во втором случае это нужно если необходимо в строке поместить кавычку » , например:
const char * str = "it is \"quoted\" string"; // it is "quoted" string
То же самое если вам нужен символ ‘ char’у присвоить:
char quote = '\''; // quote = '
Если вам нужен сам символ \ то его тоже надо экранировать, то есть в литерале нужно писать \\ :
const char * path = "C:\\Program Files\\"; // C:\Program Files\ char slash = '\\'; // shash = \
У вас же происходит следующее: в сроке str1[t] = ‘\’; вы забыли заэкранировать обратный слеш и компилятор считает весь последующий код продолжением литерала который вы хотите присвоить str1[t] .
Правильно будет так:
if(str[i] == '_') < str1[t] = '\\'; // ок t = t+1; str1[t] = '/'; // ок >
Как вывести обратный слэш в c
Ну ваше есть много способов я вывожу с помощью функции
ShowMessage («Выводит это сообщение на экран»);
проблема лиш в том что эта функция имеет параметр типа AnsiString и свое сообщение формирует в новом окне — с названием окна = названию твоего исполнительного файла
описана функция как ShowMessage (const::AnsiString);
Подскажите, а как вывести на экран «\n» (с помощью cout)
Ведь не выводит на экран такая строка: cout
в моем варианте это будет так:
всему свое время как зиме и весне
и каждому солнцу свой неба кусок
Последний раз редактировалось Stilet; 30.03.2010 в 09:52 .
Assemblerru |
Посмотреть профиль |
Найти ещё сообщения от Assemblerru |
Как вывести «\\» двойной обратный слеш?
Заменить обратный слеш на обычный
К примеру, у нас есть ссылка.
std::string и двойной слеш
Вопрос достаточно прост в примитивной программе: #include <iostream> #include <string> using.
Удвоенный двойной слеш в wstring
Здравствуйте. Делаю так: std::wstring s = argv ; s += L" "; s += argv; Получаю слишком.
Как в строке заменить обратный слэш на двойной обратный слэш ?
Есть строка std::wstring str = L"C:\Program Files\Common Files\new folder\1.0"; Как в ней.
Изменить слеш на обратный при записи OpenDialog->FileName
Прошу помощи, дорогие форумчане: "Как сделать, чтобы у OpenDialog->FileName адрес записывался, как.