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

С++ для начинающих

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

Правила описания спецсимволов в строке - C++

27.09.2013, 13:08. Просмотров 743. Ответов 8
Метки нет (Все метки)

Здравствуйте! У меня такая проблема: есть код, работу которого нужно пояснить преподавателю

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
char input[] = "sstealch1\1\11s\1wllliw1";
 
int main()
{ 
int i,c;
for ( i=2; (c=input[i]) !='\0'; i++) 
{
    switch(c)
    {
        case 'a': putchar(c); continue;
        case '1': break;
        case 1 : while( (c=input[++i]) != '\1' && c != '\0');
        case 9 : putchar('s');
        case 'w':
        case 'l': continue;
        default : putchar(c); continue;
    }
    putchar(' ');
}  
putchar('\n'); 
return 0;
}
Не могу пояснить лишь ПОЧЕМУ "\11" обрабатывается как \011 (в восьмеричной системе). Проверка показала, что \(число) обрабатывается в 8х системе, \x(число) в 16х , хотя по идее должно быть \0(число), \0х(число). Кто может пояснить, ПОЧЕМУ, подскажите пожалуйста.
P.S. Если имеет значение, среда Visual Studio 2010 Ultimate лицензия DreamsSpark'a.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2013, 13:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Правила описания спецсимволов в строке (C++):

Регулярные выражения с игнорированием спецсимволов - C++
Здравствуйте. Решил попробовать регулярные выражения в Visual C++ 2010. Задача такая: пользователь вводит (считывается параметр) текст и...

Строки. Чего больше: букв, цифр или спецсимволов? - C++
мне нужно составить программу которая будет определять чего больше букв, цифр, или специальных символов помогите плиззз (( желательно с...

описания header-ов - C++
Подскажите пожалуйста где можно описания стандартных заг. файлов.

Напишите пример описания классa - C++
Заранее прошу прощения за ламерскую просьбу. Напишите пример описания класса а С++. Желательно попроще.

Ошибка описания динамического двумерного массива - C++
#include &lt;iostream&gt; using namespace std; int main() { int x, y, i, j; cout &lt;&lt; &quot;Введите кол-во строк и столбцов: &quot;; ...

Найти ошибку в программе описания стран - C++
Здравствуйте, форумчане. Сначала о самой программе: Пишу программу, в которой есть классы прямой индекс и инвертированный. В...

8
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,068
Завершенные тесты: 1
27.09.2013, 13:22 #2
Цитата Сообщение от astatium135 Посмотреть сообщение
хотя по идее должно быть \0(число)
\0 - это вообще символ конца строки

Добавлено через 1 минуту
\(число) - такого литерала вообще не существует в природе (по моему)
0
astatium135
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 7
27.09.2013, 13:22  [ТС] #3
Цитата Сообщение от Raali Посмотреть сообщение
\0 - это вообще символ конца строки
C++
1
2
3
4
5
6
int main()
{   
    cout<<"\x09";
    system("pause");
    return 0;
}
табуляцию выводит

\(число) - в смысле \5, \13 и т.д
0
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,068
Завершенные тесты: 1
27.09.2013, 13:23 #4
Цитата Сообщение от astatium135 Посмотреть сообщение
cout<<"\x09";
дак здесь нету \0
0
astatium135
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 7
27.09.2013, 13:30  [ТС] #5
C++
1
2
3
4
5
6
int main()
{   
    cout<<"\011";
    system("pause");
    return 0;
}
эквивалентен

C++
1
2
3
4
5
6
int main()
{   
    cout<<"\11";
    system("pause");
    return 0;
}
Можешь пояснить, почему
0
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,068
Завершенные тесты: 1
27.09.2013, 13:31 #6
Цитата Сообщение от astatium135 Посмотреть сообщение
ПОЧЕМУ "\11" обрабатывается как \011 (в восьмеричной системе).
ну вообще 11 и 011 это одни и те же числа - по этому так же и обрабатывается
формат 8-ричного литерала может быть такой
\ number
\ number number (\11)
\ number number number (\011)
0
astatium135
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 7
27.09.2013, 13:34  [ТС] #7
Цитата Сообщение от ForeverSucks Посмотреть сообщение
могу там где слэш существует эквивалентность по отношению к систем
А по понятней?

Добавлено через 2 минуты
Цитата Сообщение от Raali Посмотреть сообщение
ну вообще 11 и 011 это одни и те же числа - по этому так же и обрабатывается
формат 8-ричного литерала может быть такой
\ number
\ number number
\ number number number
12345 - десятеричное
012345 - восьмеричное
0x12345 - шестнадцатеричное

Вопрос: Почему в строке по-другому?
0
SatanaXIII
Супер-модератор
Эксперт С++
5619 / 2654 / 247
Регистрация: 01.11.2011
Сообщений: 6,550
Завершенные тесты: 1
27.09.2013, 13:34 #8
Цитата Сообщение от astatium135 Посмотреть сообщение
sstealch1\1\11s\1wllliw1
прочтется как
Код
's' 's' 't' 'e' 'a' 'l' 'c' 'h' '1' 'SOH' 'SOH' '1' 's' 'SOH' 'w' 'l' 'l' 'l' 'i' 'w' '1'
http://www.island-formoza.ru/arhitektura-pc/kodi-simvolov.html
И подумайте зачем вам это надо?
0
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,068
Завершенные тесты: 1
27.09.2013, 13:37 #9
Цитата Сообщение от astatium135 Посмотреть сообщение
0x12345 - шестнадцатеричное
Вопрос: Почему в строке по-другому?
в случае с последним в строку придется пихать 0 и x - зачем лишние символы ("\xFF"(4 байта) или "\x0xFF" (5 байт))
0
27.09.2013, 13:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2013, 13:37
Привет! Вот еще темы с ответами:

Структура для описания понятия дата - C++
(Работаю в Visual studio 6.0) Ввести структуру(с полями число,месяц,год)для описания понятия дата.Составить и протестировать...

Описания членов - данных пользовательских классов - C++
⦁ Определить пользовательский класс в соответствии с вариантом задания (смотри приложение). ⦁ Определить в классе следующие конструкторы:...

Описания членов - данных пользовательских классов - C++
Помогите пожалуйста ЖИВОТНОЕ имя – char* класс – char* средний вес – int 2.Постановка задачи. Следует дать конкретную...

Различия описания классов в DEV и Visual C++ - C++
Собственно что хотелось бы спросить скачал DEV среду, а решебник нашел по Visual. Сейчас смотрю построение перегруженного конструктора,...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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