Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
1 / 1 / 0
Регистрация: 15.12.2015
Сообщений: 24
1

Чем можно заменить функцию sizeof()?

01.03.2016, 11:11. Показов 4511. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Чем можно заменить sizeof() ,в задаче нельзя использовать стандартные функции строк
Мне нужно найти длину слова
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.03.2016, 11:11
Ответы с готовыми решениями:

Чем можно заменить функцию strdup
Здравствуйте. Я хочу использовать в своем проекте одну библиотеку, но компилятор мне ругается при сборке, что ф-я strdup не объявлена....

Чем можно заменить функцию swap?
Чем можно заменить функцию swap? Она на моем компиляторе не работает. Библиотеку iostream включал.

Чем можно заменить функцию pow()?
a=1/pow(2,n) как можно написать без pow?

14
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
01.03.2016, 11:14 2
vavd, в цикле инкрементируй счётчик от начала слова до нулл-терминированого байта ( '\0' ).
1
Неэпический
 Аватар для Croessmah
18124 / 10709 / 2063
Регистрация: 27.09.2012
Сообщений: 26,997
Записей в блоге: 1
01.03.2016, 11:14 3
Цитата Сообщение от vavd Посмотреть сообщение
Чем можно заменить sizeof() ,в задаче нельзя использовать стандартные функции строк
sizeof не функция, да и не для строк...
Цитата Сообщение от vavd Посмотреть сообщение
Мне нужно найти длину слова
и каким макаром тут sizeof?
0
BrainOverflow
 Аватар для sab1ch
126 / 130 / 64
Регистрация: 31.03.2013
Сообщений: 556
01.03.2016, 11:28 4

Не по теме:

Стер сообщение, т.к. там была ошибка.



Добавлено через 2 минуты
Главное различие в том, что функция strlen вычисляет длину строки, а оператор sizeof к вычислению длины строки никакого отношения не имеет. Оператор sizeof используется для определения размера памяти занимаемой сущностью. При работе со строками он может быть применим только к строкам, определенным на стеке и константным строкам.
Да, strlen(), а не sizeof().
0
1 / 1 / 0
Регистрация: 15.12.2015
Сообщений: 24
01.03.2016, 11:37  [ТС] 5
rikimaru2013, можете показать?
0
BrainOverflow
 Аватар для sab1ch
126 / 130 / 64
Регистрация: 31.03.2013
Сообщений: 556
01.03.2016, 11:50 6
vavd,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
#include <conio.h>
int main()
{
    setlocale(LC_ALL, "Russian");
    std::string slovo = "someword"; // char* slovo = "someword";
    int j = 0;
    for (; slovo[j] != '\0'; j++); // здесь нам нужна только инкрементация, поэтому тела нет
    std::cout << "Размер слова " << slovo << " = " << j;
    _getch();
    return 0;
}
Добавлено через 8 минут
\0 - символ конца строки (многие строковые функции проходят по памяти строк, до тех пор пока не встретят этот байт).
Это так, если не знали.
1
Любитель чаепитий
 Аватар для GbaLog-
3744 / 1800 / 566
Регистрация: 24.08.2014
Сообщений: 6,018
Записей в блоге: 1
01.03.2016, 12:16 7
Sabnik18, А что если я так сделаю?
C++
1
std::string word = "some\0word";
0
26 / 26 / 15
Регистрация: 30.12.2015
Сообщений: 95
01.03.2016, 12:24 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int size(const char *str)
{
    int i = 0;
    while(*str)
    {
        i++;
        str++;
    }
    return i;
}
 
int main()
{
    char *str = "string";
    std::cout << size(str);
    std::cin.get();
    return 0;
}
Для си строк.
0
BrainOverflow
 Аватар для sab1ch
126 / 130 / 64
Регистрация: 31.03.2013
Сообщений: 556
01.03.2016, 12:35 9
makfak, мне кажется особой надобности это делать нет.
0
52 / 52 / 24
Регистрация: 24.12.2011
Сообщений: 133
01.03.2016, 13:28 10
makfak, скорее всего, задача про си-строки.
0
26 / 26 / 15
Регистрация: 30.12.2015
Сообщений: 95
01.03.2016, 14:10 11
makfak, даже если так, все действия со строкой будут производиться для отрезка перед терминальным нулем, даже не говоря о том, что нет надобности вставлять в середину строки этот самый нуль.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
01.03.2016, 14:20 12
makfak, Если так то до \0.
Другое дело если так:
C++
1
std::string word("some\0word", 9);
1
Любитель чаепитий
 Аватар для GbaLog-
3744 / 1800 / 566
Регистрация: 24.08.2014
Сообщений: 6,018
Записей в блоге: 1
01.03.2016, 14:45 13
ForEveR, Sabnik18, А вообще, суть в том, что вы привели string, а у класса string есть аж 2 функции-члена, позволяющие вычислить длину строки. length() и size().
0
Эксперт С++
 Аватар для hoggy
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
01.03.2016, 19:46 14
Цитата Сообщение от Croessmah Посмотреть сообщение
и каким макаром тут sizeof?
количество буковок литерной константы конечно жеж.
0
Неэпический
 Аватар для Croessmah
18124 / 10709 / 2063
Регистрация: 27.09.2012
Сообщений: 26,997
Записей в блоге: 1
01.03.2016, 20:09 15
Цитата Сообщение от hoggy Посмотреть сообщение
количество буковок литерной константы
так это не равно "длина слова".
Так что вопрос актуален
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.03.2016, 20:09
Помогаю со студенческими работами здесь

Чем можно заменить функцию setlocale(LC_ALL, "RUSSIAN")?
напишите пожалуйста пример!!

Чем заменить функцию gets?
Задача с informatics Змей Горыныч оказался в лабиринте и хочет выбраться из него как можно скорее. К сожалению, после вчерашнего...

Чем можно заменить рекурсивную функцию?
народ объясните как работает рекурсивная финкция как можно сделать задачу: вычислить n-ое число в последовательности фибоначчи вот...

Чем можно заменить старую функцию DirectDrawCreateEx?
В старой книге по DirectX примеры содержат вызов этой функции. Последний SDK не включает себя библиотеки по DirectDraw, а из-за этой...

Чем можно заменить в C# функцию CoInitialize() из Delphi
Чем можно заменить в C# функцию CoInitialize() из Delphi? Пытаюсь подключить библиотеку для морф. анализа от aot, переписал код с дэлфи...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Что нового в C# 14
UnmanagedCoder 10.03.2025
Предстоящая версия C# 14 обещает принести изменения, которые сделают разработку еще более приятной и эффективной. Что стоит отметить, так это влияние сообщества разработчиков на формирование новых. . .
Формулы поворота
Igor3D 10.03.2025
Добрый день Тема Эти формулы приводятся во множестве тьюториалов, часто под видом "матрица вращения на плоскости". x' = x * cos(a) - y * sin(a) y' = y * cos(a) + x * sin(a) Как бы Вы их. . .
Что нового в .NET 10
UnmanagedCoder 10.03.2025
. NET 10 выходит как релиз с длительной поддержкой (LTS), включающей три года обновлений. В этом обновлении Microsoft сфокусировались на нескольких направлениях: производительность, оптимизация. . .
Отложенное высвобождение, RCU и Hazard Pointer в C++26
NullReferenced 09.03.2025
Многопоточное программирование стало важной частью современной разработки. Когда несколько потоков одновременно работают с общими данными, возникает целый ряд проблем, связанных с синхронизацией и. . .
Неблокирующийся стек на C++26
NullReferenced 09.03.2025
Традиционные способы синхронизации в многопоточном программировании — мьютексы, семафоры, условные переменные — часто превращаются в узкое место в плане производительности. При этом неблокирующиеся. . .
Обработка строк в C++26: Новые возможности string и string_view
NullReferenced 09.03.2025
Новый стандарт C++26 предлагает много улучшений для работы с привычными string и относительно новыми string_view. string_view - это невладеющая ссылка на последовательность символов, появившаяся в. . .
Мой первый аддон для Blender 3D, с помощью нейронки (не зная даже азов пайтона, но это не значит что так и с остальным).
Hrethgir 09.03.2025
Потратил весь день. Пол-дня мне хватило, чтобы понять что с версией с 14B мне не одолеть написание функционального кода, на языке с которым я вообще никак не знаком - пайтон. Версия 22B от другого. . .
Einstein@Home сегодня исполняется двадцать лет!
Programma_Boinc 09.03.2025
Einstein@Home сегодня исполняется двадцать лет! Отправлено 19 февраля 2025 года в 17:20:21 UTC Я хочу поздравить всех наших волонтеров, разработчиков и ученых из Einstein@Home. Мы официально. . .
Заполнители и расширенный набор символов в C++26
NullReferenced 09.03.2025
C++26 представляет два важных обновления: заполнители и расширенный набор символов. Заполнители (placeholders) решают давнюю проблему лаконичности кода в шаблонных выражениях и лямбда-функциях. Они. . .
Контракты в C++26
NullReferenced 09.03.2025
Контракты – это механизм, позволяющий указывать предусловия, постусловия и инварианты для функций в коде. Эта функциональность должна была стать частью C++20, но была исключена на встрече комитета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru