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

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

Войти
Регистрация
Восстановить пароль
 
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
#1

Почему длина данной строки равна 11? - C++

02.07.2013, 23:08. Просмотров 389. Ответов 6
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
#include<stdio.h>
#include<string.h>
int main(){
char *str="ax\x12+b\029\\a\"!";
printf("a=%d\n",strlen(str));
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2013, 23:08     Почему длина данной строки равна 11?
Посмотрите здесь:

Необходимо изменить строку так, чтобы длина строки стала равна заданной длине - C++
Дана строка текста, в котором нет начальных и конечных пробелов. Необходимо изменить ее так, чтобы длина строки стала равна заданной длине...

Дан текстовый файл. Напечатать все строки, длина которых равна данному числу - C++
Дан текстовый файл. Напечатать все строки, для которых равна данному числу. с# Помогите, пожалуйста.

появилась загвоздка с функцией. нужно вывести на экран строку, сост. из звездочек. Длина строки-параметр функциииз звезд. длина строки - - C++
Я видела, что на форуме есть подобные задачи, но ни одно из их решений не работает на моем dev cpp.:( вот вариант решения, но он не...

Чему равна длина Char* - C++
Здравствуйте! Вот код: for (int i = 0; i &lt; 20; i++) { char c = i + '0'; Init(&amp;c);//Init(char*); } У меня проблема...

Выбрать те слова, длина которых равна заданному числу - C++
Выбрать те слова, длина которых равна заданному числу.

Сформировать стек всех слов, длина которых меньше либо равна 5 - C++
Помогите с программой на c++. Дан текст, состоящий не менее чем из 7 слов. Сформировать стек всех слов, длина которых меньше либо равна 5.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Divinesites
106 / 101 / 6
Регистрация: 29.06.2013
Сообщений: 319
03.07.2013, 00:00     Почему длина данной строки равна 11? #2
Все дело в обратных слэшах. Они просто экранируют символы. Одиночный обратный слэш, например, не учитывается при подсчете strlen(str)
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
03.07.2013, 00:13  [ТС]     Почему длина данной строки равна 11? #3
Enero, А почему в этой строке
C++
1
char *str="ax\x12+b\029\\a\"!";
что-то выделено красным, а что-то нет. По какому принципу форум автоматически выделяет некоторые символы?
Divinesites
106 / 101 / 6
Регистрация: 29.06.2013
Сообщений: 319
03.07.2013, 00:40     Почему длина данной строки равна 11? #4
Цитата Сообщение от Sammm Посмотреть сообщение
По какому принципу форум автоматически выделяет некоторые символы?
К сожалению, на данный вопрос я ответить вам не могу. Вы можете узнать об этом у администраторов или модераторов этого форума.
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
03.07.2013, 01:03  [ТС]     Почему длина данной строки равна 11? #5
Enero, Можете сказать, какие символы в этой строке увеличивают значение strlen(str) а какие нет?
C++
1
char *str="ax\x12+b\029\\a\"!";
Croessmah
Модератор
Эксперт CЭксперт С++
13056 / 7319 / 816
Регистрация: 27.09.2012
Сообщений: 18,055
Записей в блоге: 3
Завершенные тесты: 1
03.07.2013, 01:13     Почему длина данной строки равна 11? #6
Потому что такой слеш используется для обозначения специальных символов или кодов символов. Например, если после слеша стоит символ 'x', значит ожидается код символа в шестнадцатеричной системе счисления, если '0', то в восьмеричной, если 't', то табуляция и т.д., сам же слеш в строку не входит. Чтобы записать в литерал слеш, нужно использовать двойной слешь '\\'
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2013, 03:08     Почему длина данной строки равна 11?
Еще ссылки по теме:

строки в с++ проверить является четным числом длина введенной пользователем строки и вывести сообщение на экран - C++
1) проверить является четным числом длина введенной пользователем строки и вывести сообщение на экран помогите решить пожалуйста, болел...

Почему в данной программе числа не генерируются, а остаются прежними? - C++
#include &lt;iostream&gt; using namespace std; void generator(int *a, int n) { for(int i=0;i&lt;n;++i) { a=rand()%200-100; ...

длина строки - C++
Здравствуйте. Есть такой код. char stroka; char *str=new char ; cout&lt;&lt;str&lt;&lt;&quot; - &quot;&lt;&lt;strlen(str)&lt;&lt;endl&lt;&lt;stroka&lt;&lt;&quot; - ...

Длина строки в С++ - C++
Здравствуйте, кто может, подскажите, как определить длину строки в С++. Знаю, что в паскале было бы так: c:=lenght(s); А как на С++ не...


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

Или воспользуйтесь поиском по форуму:
Artimosha
0 / 0 / 0
Регистрация: 30.06.2013
Сообщений: 12
03.07.2013, 03:08     Почему длина данной строки равна 11? #7
char *str="ax\x12+b\029\\a\"!";
строка сама является таковой: ax↕+b☻9\a"!

все красное - символы.
\\ экранирует слеш, \" экранирует кавычку и тд.
Вид \х и \0 с продолжением(синий фон) коды выводимых символов в разных системах счисления(0 - для восьмеричной, х для 16-ричной).
Тут могу и ошибиться, но скорее всего, это так.
Yandex
Объявления
03.07.2013, 03:08     Почему длина данной строки равна 11?
Ответ Создать тему
Опции темы

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