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

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

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

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

02.07.2013, 23:08. Просмотров 402. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2013, 23:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему длина данной строки равна 11? (C++):

Напечатать все строки файла, длина которых равна заданному значению - C++
В каждой теме должна быть только одна задача! Файлы: I. Работа с текстовыми файлами. Дан текстовый файл. Напечатать все строки, длина...

Необходимо изменить строку так, чтобы длина строки стала равна заданной длине - 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.

6
Divinesites
106 / 101 / 6
Регистрация: 29.06.2013
Сообщений: 344
03.07.2013, 00:00 #2
Все дело в обратных слэшах. Они просто экранируют символы. Одиночный обратный слэш, например, не учитывается при подсчете strlen(str)
1
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
03.07.2013, 00:13  [ТС] #3
Enero, А почему в этой строке
C++
1
char *str="ax\x12+b\029\\a\"!";
что-то выделено красным, а что-то нет. По какому принципу форум автоматически выделяет некоторые символы?
0
Divinesites
106 / 101 / 6
Регистрация: 29.06.2013
Сообщений: 344
03.07.2013, 00:40 #4
Цитата Сообщение от Sammm Посмотреть сообщение
По какому принципу форум автоматически выделяет некоторые символы?
К сожалению, на данный вопрос я ответить вам не могу. Вы можете узнать об этом у администраторов или модераторов этого форума.
1
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
03.07.2013, 01:03  [ТС] #5
Enero, Можете сказать, какие символы в этой строке увеличивают значение strlen(str) а какие нет?
C++
1
char *str="ax\x12+b\029\\a\"!";
0
Croessmah
Пришел
Эксперт CЭксперт С++
13771 / 7852 / 894
Регистрация: 27.09.2012
Сообщений: 19,271
Записей в блоге: 3
Завершенные тесты: 1
03.07.2013, 01:13 #6
Потому что такой слеш используется для обозначения специальных символов или кодов символов. Например, если после слеша стоит символ 'x', значит ожидается код символа в шестнадцатеричной системе счисления, если '0', то в восьмеричной, если 't', то табуляция и т.д., сам же слеш в строку не входит. Чтобы записать в литерал слеш, нужно использовать двойной слешь '\\'
1
Artimosha
0 / 0 / 0
Регистрация: 30.06.2013
Сообщений: 12
03.07.2013, 03:08 #7
char *str="ax\x12+b\029\\a\"!";
строка сама является таковой: ax↕+b☻9\a"!

все красное - символы.
\\ экранирует слеш, \" экранирует кавычку и тд.
Вид \х и \0 с продолжением(синий фон) коды выводимых символов в разных системах счисления(0 - для восьмеричной, х для 16-ричной).
Тут могу и ошибиться, но скорее всего, это так.
0
03.07.2013, 03:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2013, 03:08
Привет! Вот еще темы с ответами:

Изменить заданную строку текста так, чтобы её длина была равна указанной длине - C++
Здравствуйте!Столкнулся с такой задачей :Дана строка текста. Изменить его так, чтобы длина строки была равна заданной длине. Если исходная...

Заменить каждую серию массива, длина которой равна L, на один элемент с нулевым значением - C++
Здравствуйте.Дано целое число L (&gt; 0) и целочисленный массив размера N. Заменить каждую серию массива, длина которой равна L, на один...

Заменить каждую серию массива, длина которой равна L, на один элемент с нулевым значением - C++
нужно решение Дано целое число L (&gt;0) и целочисленный массив размера N. Заме- нить каждую серию массива, длина которой равна L, на...

Если длина введенной строки кратна 4, первую часть строки поменять местами со второй - C++
Если длина введенной строки кратна 4, первую часть строки поменять местами со второй.


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

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

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