0 / 0 / 0
Регистрация: 10.02.2016
Сообщений: 64
1

Определение размера строки массива строк

19.10.2016, 17:58. Показов 1952. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!

Visual C++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char *my_string[]={"Это первая строка", 
              "Это вторая строка", 
              "Это третья строка",
              "Это четвертая строка"};
 
void myfunc (char **symb, unsigned char n_str)
{ 
    unsigned char n=sizeof(*(symb+n_str));
}
 
void main(void)
{ 
    myfunc(my_string, 1);
}
Почему длина "n" в символах второй строки ("Это вторая строка") в функции myfunc n=4 (должно n=18)?
Длину строки следует определять по 0? Благодарю за ответ!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.10.2016, 17:58
Ответы с готовыми решениями:

Определение размера динамического массива строк
Здравствуйте, столкнулся с проблемой предопределения размера массива строк. Проблема в том, что я...

Определение размера массива
Привет всем у меня несколько вопросов по языку си (компилятор gcc). 1) Есть, например след код:...

Определение размера массива
Код: template <class T,int N> int arr_sz(T (&arr)) {return N;} void sum(int a){cout<<a;};...

Определение размера массива в функции
Всем доброго дня ! Подскажите пожалуйста, как можно определить размер массива в функции ? ...

4
Любитель чаепитий
3744 / 1800 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
19.10.2016, 18:03 2
Цитата Сообщение от Todini Посмотреть сообщение
Почему длина "n" в символах второй строки ("Это вторая строка") в функции myfunc n=4 (должно n=18)?
Потому что оператор sizeof делает не то, на что Вы рассчитываете.
Конкретнее здесь: http://en.cppreference.com/w/cpp/language/sizeof
Цитата Сообщение от Todini Посмотреть сообщение
Длину строки следует определять по 0?
По терминальному 0, то есть по \0.
Для этого есть функция std::strlen.
http://en.cppreference.com/w/c... yte/strlen

Добавлено через 2 минуты
Ну а если хочется самописную, то могу предложить рекурсивную:
Создать рекурсивную функцию подсчета длины строки
2
Диссидент
Эксперт C
27707 / 17325 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
19.10.2016, 18:04 3
Цитата Сообщение от Todini Посмотреть сообщение
Почему
Потому что написана чушь. Ты определил размер указателя. Длина строки определяется функцией strlen.
Цитата Сообщение от Todini Посмотреть сообщение
Длину строки следует определять по 0
Да, или по терминальному нулю.

Добавлено через 59 секунд

Не по теме:

GbaLog-, я рад, что наши мнения совпали. С точностью до минуты:)



Добавлено через 50 секунд

Не по теме:

Тем убедительнее наши слова будут звучать для ТС.:)

2
GbaLog-
19.10.2016, 18:05
  #4

Не по теме:

Цитата Сообщение от Байт Посмотреть сообщение
я рад, что наши мнения совпали. С точностью до минуты
А я-то как рад, надоело оставаться в дураках. :)

0
0 / 0 / 0
Регистрация: 10.02.2016
Сообщений: 64
19.10.2016, 18:11  [ТС] 5
GbaLog- и Байт! Благодарю за помощь!
Цитата Сообщение от Байт Посмотреть сообщение
Ты определил размер указателя
Ну конечно!!!
0
19.10.2016, 18:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.10.2016, 18:11
Помогаю со студенческими работами здесь

Определение размера массива + sizeof
Массив из 6 чисел: sizeof возвращает 24 байта. Тот же массив вызван функцией возвращает только 4...

Определение размера динамического массива
Вопрос может не много глупый, но я подзабыл с. Считаю размер динамического массива и результат...

Определение размера одномерного массива
Добрый день. Необходимо задать размер одномерного массива. В цикле for стоит переменная - счетчик,...

Определение размера массива при чтении из файла
Здравствуйте! В основном,когда я сталкивался с чтением двумерного массива из файла .txt мне либо...

Функции работы со строками символов: определение размера строки, копирование строк, добавление строк, сравнение строк
На языке Ассемблер написать функции работы со строками символов: определение размера строки,...

Определение размера строки
Тренируюсь работать со словарями. Пример, где есть словарь пользователей и их паролей. При запуске...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru