Поиск длины строки

C++:
Поиск длины строки

Как:

C++ предоставляет простой способ найти длину строки с использованием метода length() класса std::string. Но если вы предпочитаете классику, вы можете использовать строки в стиле C и strlen(). Вот пример обоих способов:

#include <iostream>
#include <string>
#include <cstring>

int main() {
    // Используя std::string
    std::string приветствие = "Привет, мир!";
    std::cout << "Длина строки (std::string): " << приветствие.length() << std::endl;

    // Используя строку в стиле C
    const char *c_приветствие = "Привет, мир!";
    std::cout << "Длина строки (стиль C): " << strlen(c_приветствие) << std::endl;

    return 0;
}

Пример вывода:

Длина строки (std::string): 13
Длина строки (стиль C): 13

Подробнее:

Изначально C++ унаследовал от C массивы символов в стиле C и сопровождающую их функцию strlen(). strlen() вычисляет длину, проходя по массиву до тех пор, пока не встретит нулевой символ, '\0'. Это простая, но эффективная стратегия, однако она не может сравниться по эффективности с std::string.length(), которая обычно отслеживает длину для быстрого доступа.

Альтернативы? Конечно:

  • Вы также можете использовать метод size(), идентичный length() для std::string.
  • Для строк с широкими символами std::wstring и его метод length() будут вашими друзьями.
  • Более оригинальные варианты включают написание собственных функций или использование алгоритмов вроде std::distance с итераторами.

Однако будьте осторожны, std::string::length() возвращает тип size_t, беззнаковое целое, которое может привести к неожиданному поведению, если вы используете его с знаковыми типами в выражениях.

См. также: