Что такое length c

Строки в языке C++ (класс string)

В языке C++ для удобной работы со строками есть класс string, для использования которого необходимо подключить заголовочный файл string.

Строки можно объявлять и одновременно присваивать им значения:

string S1, S2 = «Hello»;

Строка S1 будет пустой, строка S2 будет состоять из 5 символов.

Строки в языке C++ могут

Конструкторы строк

Конструкторы можно вызывать явно, например, так:

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

Подробней о конструкторах для строк читайте здесь.

Ввод-вывод строк

Строка выводится точно так же, как и числовые значения:

cout >» для объекта cin:

Можно считывать строки до появления символа конца строки при помощи функции getline. Сам символ конца строки считывается из входного потока, но к строке не добавляется:

Арифметические операторы

Подробней о методе resize.

clear

Подробней о методе clear.

empty

Подробней о методе empty.

push_back

Подробней о методе push_back.

append

Добавляет в конец строки несколько символов, другую строку или фрагмент другой строки. Имеет много способов вызова.

Подробней о методе append.

erase

Подробней о методе erase.

insert

Подробней о методе insert.

substr

Подробней о методе substr.

replace

Заменяет фрагмент строки на несколько равных символов, другую строку или фрагмент другой строки. Способы вызова аналогичны способам вызова метода append, только первыми двумя параметрами являются два числа: pos и count. Из данной строки удаляется count символов, начиная с символа pos, и на их место вставляются новые символы.

Подробней о методе replace.

Подробней о методе find.

rfind

Ищет последнее вхождение подстроки («правый» поиск). Способы вызова аналогичны способам вызова метода find.

Подробней о методе rfind.

find_first_of

Ищет в данной строке первое появление любого из символов данной строки str. Возвращается номер этого символа или значение string::npos.

find_last_of

Ищет в данной строке последнее появление любого из символов данной строки str. Способы вызова и возвращаемое значение аналогичны методу find_first_of.

Подробней о методе find_last_of.

find_first_not_of

Ищет в данной строке первое появление символа, отличного от символов строки str. Способы вызова и возвращаемое значение аналогичны методу find_first_of.

find_last_not_of

Ищет в данной строке последнее появление символа, отличного от символов строки str. Способы вызова и возвращаемое значение аналогичны методу find_first_of.

c_str

Возвращает указать на область памяти, в которой хранятся символы строки, возвращает значение типа char*. Возвращаемое значение можно рассматривать как C-строку и использовать в функциях, которые должны получать на вход C-строку.

Источник

Работа со строками

Строки и класс System.String

Создание строк

Создавать строки можно, как используя переменную типа string и присваивая ей значение, так и применяя один из конструкторов класса String:

Конструктор String имеет различное число версий. Так, вызов конструктора new String(‘a’, 6) создаст строку «aaaaaa». И так как строка представляет ссылочный тип, то может хранить значение null.

Строка как набор символов

Так как строка хранит коллекцию символов, в ней определен индексатор для доступа к этим символам:

Применяя индексатор, мы можем обратиться к строке как к массиву символов и получить по индексу любой из ее символов:

Основные методы строк

Основная функциональность класса String раскрывается через его методы, среди которых можно выделить следующие:

Compare : сравнивает две строки с учетом текущей культуры (локали) пользователя

CompareOrdinal : сравнивает две строки без учета локали

Contains : определяет, содержится ли подстрока в строке

Concat : соединяет строки

CopyTo : копирует часть строки, начиная с определенного индекса в массив

EndsWith : определяет, совпадает ли конец строки с подстрокой

Format : форматирует строку

IndexOf : находит индекс первого вхождения символа или подстроки в строке

Insert : вставляет в строку подстроку

Join : соединяет элементы массива строк

LastIndexOf : находит индекс последнего вхождения символа или подстроки в строке

Replace : замещает в строке символ или подстроку другим символом или подстрокой

Split : разделяет одну строку на массив строк

Substring : извлекает из строки подстроку, начиная с указанной позиции

ToLower : переводит все символы строки в нижний регистр

ToUpper : переводит все символы строки в верхний регистр

Trim : удаляет начальные и конечные пробелы из строки

Источник

Как получить реальную и общую длину char * (массив char)?

Для char [] Я могу легко получить его длину:

Тем не менее, я не могу сделать так, чтобы получить длину char * от:

потому что я знаю, a вот указатель, такой что length здесь всегда будет 4 (или что-то другое в разных системах).

Мой вопрос заключается в том, как я могу получить длину char * после этого? Я знаю, что кто-то может бросить мне вызов, что вы уже знаете его 10 потому что вы только что создали это. Я хочу знать это, потому что этот шаг получения его длины может пройти долгий путь от его создания, и я не хочу возвращаться далеко назад, чтобы проверить это число. Кроме того, я также хочу знать его реальную длину.

Чтобы быть более конкретным

для следующего примера:

Решение

Ты не можешь Во всяком случае, не со 100% точностью. Указатель не имеет длины / размера, но имеет свои. Все, что он делает, это указывает на определенное место в памяти, которое содержит символ. Если этот символ является частью строки, то вы можете использовать strlen определить, какие символы следуют за указанным в данный момент, но это не означает, что массив в твоем случае такой большой.
В принципе:

указатель это не массив, так что это не необходимость знать, каков размер массива. Указатель может указывать на одно значение, поэтому указатель может существовать, даже не будучи массивом. Его даже не волнует, где находится память, на которую он указывает (только чтение, куча или стек … не имеет значения). Указатель не имеет длины, отличной от себя. Указатель просто …
Учти это:

Указатель может быть одним символом, а также началом, концом или серединой массива …

Думайте о символах как о структурах. Иногда вы выделяете одну структуру в куче. Это также создает указатель без массива.

Еще одна аналогия:
Думайте о указателе как о дорожном знаке, он указывает на Город Х. Знак не знает, как выглядит этот город, и не знает и не заботится (или может не заботиться) о том, кто там живет. Это работа, чтобы сказать вам, где найти Город Х. Он может только сказать вам, насколько далеко этот город, но не насколько он большой. Эта информация считается неактуальной для дорожных знаков. Это то, что вы можете узнать, только взглянув на сам город, а не на дорожные знаки, указывающие вам его направление

Итак, используя указатель, вы можете только:

Но это, конечно, работает, только если массив / строка заканчивается \ 0.

В качестве помощника:

на самом деле присваивает size_t (возвращаемый тип sizeof ) для int Лучше всего написать:

поскольку size_t тип без знака, если sizeof возвращает большие значения, значение length может быть что-то, чего ты не ожидал …

Другие решения

Если char * 0-терминатор, вы можете использовать strlen

В противном случае невозможно определить эту информацию.

Есть только два способа:

Учитывая только указатель, вы не можете. Вы должны будете держать длину, которую вы прошли new[] или лучше используйте std::vector чтобы следить за длиной, и освободить память, когда вы закончили с ним.

Примечание: этот ответ касается только C ++, но не C.

Просто используйте std::vector которые сохраняют (динамический) размер для вас. (Бонус, управление памятью бесплатно).

Или же std::array которые сохраняют (статический) размер.

Создайте структуру для хранения информации, например:

Мой вопрос заключается в том, как я могу получить длину символа *

Это очень просто. 🙂 Достаточно добавить только одно утверждение

Теперь вы можете получить размер выделенного массива

Многие упоминали здесь C стандартную функцию std :: strlen. Но он не возвращает фактический размер массива символов. Возвращает только размер хранимого строкового литерала.

Разница в следующем. если взять в качестве примера фрагмент кода

тогда std :: strlen (a) вернет 5 вместо 6, как в вашем коде.

Что ж, теперь, когда я думаю об этом, пожалуйста, никогда не делайте этого. Если только вы не захотите приземлиться в кучу грязной памяти.

Кроме того, для выделенной памяти или Общая память Вы можете использовать следующие функции, если ваша среда предоставляет их:

Вы можете реализовать свой собственный new а также delete функции, а также дополнительный get-size функция:

Кроме того, вы можете переопределить new а также delete операторы аналогичным образом.

Источник

String. Substring Метод

Определение

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Извлекает подстроку из данного экземпляра.

Этот член перегружен. Для получения полной информации о данном члене, включая синтаксис, использование и примеры, щелкните имя в списке перегрузок.

Перегрузки

Извлекает подстроку из данного экземпляра. Подстрока начинается в указанном положении символов и продолжается до конца строки.

Извлекает подстроку из данного экземпляра. Подстрока начинается с указанной позиции знака и имеет указанную длину.

Substring(Int32)

Извлекает подстроку из данного экземпляра. Подстрока начинается в указанном положении символов и продолжается до конца строки.

Параметры

Отсчитываемая от нуля позиция первого знака подстроки в данном экземпляре.

Возвращаемое значение

Строка, эквивалентная подстроке, которая начинается с startIndex в данном экземпляре, или Empty, если значение startIndex равно длине данного экземпляра.

Исключения

startIndex имеет значение меньше нуля или больше длины этого экземпляра.

Примеры

В следующем примере показано получение подстроки из строки.

В следующем примере метод используется Substring для разделения пар «ключ-значение», разделенных символом равенства («=»).

IndexOfМетод используется для получения позиции знака равенства в строке. Вызов Substring(Int32, Int32) метода извлекает имя ключа, которое начинается с первого символа в строке и расширяется для количества символов, возвращаемых при вызове IndexOf метода. Substring(Int32)Затем вызов метода извлекает значение, присвоенное ключу. Он начинается с одной позиции символа за знаком равенства и расширяется до конца строки.

Комментарии

Метод вызывается Substring(Int32) для извлечения подстроки из строки, которая начинается с указанной позиции символа и заканчивается в конце строки. Начальная позиции символа начинается с нуля; Иными словами, первый символ в строке находится по индексу 0, а не к индексу 1. Чтобы извлечь подстроку, которая начинается с указанной позиции символа и заканчивается до конца строки, вызовите Substring(Int32, Int32) метод.

Этот метод не изменяет значение текущего экземпляра. Вместо этого он возвращает новую строку, которая начинается с startIndex позиции в текущей строке.

Если равен startIndex нулю, метод возвращает исходную строку без изменений.

См. также раздел

Применяется к

Substring(Int32, Int32)

Извлекает подстроку из данного экземпляра. Подстрока начинается с указанной позиции знака и имеет указанную длину.

Параметры

Отсчитываемая от нуля позиция первого знака подстроки в данном экземпляре.

Число символов в подстроке.

Возвращаемое значение

Исключения

startIndex плюс length указывает на позицию за пределами данного экземпляра.

Значение параметра startIndex или length меньше нуля.

Примеры

В следующем примере показан простой вызов Substring(Int32, Int32) метода, который извлекает два символа из строки, начиная с шестой позиции символа (т. е. по индексу 5).

В следующем примере метод используется Substring(Int32, Int32) в следующих трех случаях для изоляции подстрок в строке. В двух случаях подстроки используются в сравнениях, а в третьем случае возникает исключение, так как указаны недопустимые параметры.

Он пытается извлечь один символ, начиная с четвертой позиции в строке. Так как в этой позиции нет символа, вызов метода создает ArgumentOutOfRangeException исключение.

В следующем примере метод используется Substring для разделения пар «ключ-значение», разделенных символом равенства («=»).

IndexOfМетод используется для получения позиции знака равенства в строке. Вызов Substring(Int32, Int32) метода извлекает имя ключа, которое начинается с первого символа в строке и расширяется для количества символов, возвращаемых при вызове IndexOf метода. Substring(Int32)Затем вызов метода извлекает значение, присвоенное ключу. Он начинается с одной позиции символа за знаком равенства и расширяется до конца строки.

Комментарии

Метод вызывается Substring(Int32, Int32) для извлечения подстроки из строки, которая начинается с указанной позиции символа и заканчивается до конца строки. Начальная позиции символа начинается с нуля; Иными словами, первый символ в строке находится по индексу 0, а не к индексу 1. Чтобы извлечь подстроку, которая начинается с указанной позиции символа и продолжается до конца строки, вызовите Substring(Int32) метод.

Этот метод не изменяет значение текущего экземпляра. Вместо этого он возвращает новую строку с length символами, начиная с startIndex положения в текущей строке.

Если подстрока расширяется startIndex до указанной последовательности символов, можно вызвать метод, например IndexOf или, LastIndexOf чтобы получить индекс конечного символа или последовательности символов. Затем это значение можно преобразовать в индекс в строке следующим образом:

Если startIndex значение равно нулю и равно длине текущей строки, метод возвращает исходную строку без изменений.

Источник

Использование функции length

То бишь ругается на невозможность открытия нескольких заголовочных файлов. Пути в Project/Options проставил, вот не знаю, в чем проблема.

А вообще, если есть другое решение для подсчета количества символов в строке типа AnsiString в c++ builder 6, то это бы мне помогло.
Заранее спасибо.

Добавлено через 6 минут 28 секунд
О, сделал так:
int p;
p=ansi_string.Length();
Извиняюсь за беспокойство.

Доработать функции Length, dreverse
Здравствуйте! Вот есть функция LENGTH: (defun myLength (lst) (if lst (+ 1 (myLength (cdr lst))).

Что такое length c. Смотреть фото Что такое length c. Смотреть картинку Что такое length c. Картинка про Что такое length c. Фото Что такое length cСвойство функции в джава скрипт- length
какое ожидаемое(expected) и фактическое количество(actual) аргументов имеется в виду в.

Объяснить назначение функции length(), принимающей в качестве аргумента std::vector
Добрый день! Подскажите, пожалуйста. Есть такая переменная: vector Yvect C тремя.

Запишите с использованием предложения PROG функцию (аналог встроенной функции LENGTH )
Запишите с помощью предложения PROG функцию (аналог встроенной функции LENGTH ), которая возвращает.

То бишь ругается на невозможность открытия нескольких заголовочных файлов. Пути в Project/Options проставил, вот не знаю, в чем проблема.

А вообще, если есть другое решение для подсчета количества символов в строке типа AnsiString в c++ builder 6, то это бы мне помогло.
Заранее спасибо.

Добавлено через 6 минут 28 секунд
О, сделал так:
int p;
p=ansi_string.Length();
Извиняюсь за беспокойство.

Лично я всегда использую функцию strlen() для подсчета длинны строки, помойму функция Length(); делфовая, в Сях нет такой функции, может ошибаюсь Что такое length c. Смотреть фото Что такое length c. Смотреть картинку Что такое length c. Картинка про Что такое length c. Фото Что такое length c

int p;
p=strlen(Edit1->Text.c_str());
Button1->Caption=p;
Подсчет длинны строки в эдит

Насколько я вижу, у человека та же проблеммаЧто такое length c. Смотреть фото Что такое length c. Смотреть картинку Что такое length c. Картинка про Что такое length c. Фото Что такое length c
[C++ Error] Unit1.cpp(98): E2268 Call to undefined function ‘length’м

Добавлено через 4 минуты 11 секунд
Опс, и правда работает Что такое length c. Смотреть фото Что такое length c. Смотреть картинку Что такое length c. Картинка про Что такое length c. Фото Что такое length c

Добавлено через 1 минуту 54 секунды
Спс всем за просветление Что такое length c. Смотреть фото Что такое length c. Смотреть картинку Что такое length c. Картинка про Что такое length c. Фото Что такое length c

Добавлено через 5 минут 47 секунд
dstring.h

И если вам надо создать экземпляр этого класса (объект) и очистить его, то вы пишите так:

MyStack = Stack();
MyStack.Clear();

А теперь подумайте, если AnsiString такой же класс, то.

AnsiString Str; //создаем пустую строку (конструктор по умолчанию)
AnsiString Str = «blbalba» //создаем строку уже со значением (параметрический конструктор)

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *