Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Функции строк в C++: strcpy, strcat, strlen, strcmp — практические примеры

Что такое строка?

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

В учебных целях C++ всё ещё поддерживает классические C-строки — нуль-терминированные массивы символов. Оба подхода имеют своё место: std::string для повседневного программирования, C-строки — для работы с legacy API или производительностно-критичным низкоуровневым кодом.

Объявление строк

C-строка

Пример:

char name[5] = {'J', 'o', 'h', 'n', '\0'};

Или компактнее:

char name[] = "John"; // компилятор сам добавит завершающий '\0'

std::string

Для использования std::string подключите заголовочный файл и объявите переменную:

#include <string>
std::string name = "John";

Доступ к значениям строк

Ниже — простая консольная программа, выводящая C-строку и std::string.

#include <iostream>
#include <string>
using namespace std;
int main() {
    char cName[5] = "John";       // C-строка
    string cppName = "Guru99";    // std::string
    cout << "C-style string: " << cName << endl;
    cout << "std::string: " << cppName << endl;
    return 0;
}

Вывод:

Функции строк в C++: strcpy, strcat, strlen, strcmp — практические примеры

Основные функции для C-строк

Эти функции определены в заголовочном файле cstring. Они работают с C-строками (нуль-терминированными массивами char).

strcpy()

Копирует исходную строку в буфер назначения. Буфер назначения должен быть достаточно велик.

strcpy(dest, src); // dest должен иметь достаточно места

strcat()

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

strcat(dest, src); // dest должен иметь достаточно места

strlen()

Возвращает количество символов в строке, исключая завершающий нуль-байт.

size_t len = strlen(str);

strcmp()

Лексикографически сравнивает две строки. Возвращает 0, если равны, отрицательное — если первая меньше, положительное — если первая больше.

int cmp = strcmp(str1, str2);

Практический пример

#include <iostream>
#include <cstring>
using namespace std;
int main() {
    char name1[10] = "Guru99";
    char name2[10] = "John";
    char name3[20]; // достаточно для конкатенации
    // Копирование
    strcpy(name3, name1);
    cout << "strcpy(name3, name1): " << name3 << endl;
    // Конкатенация
    strcat(name1, name2);
    cout << "strcat(name1, name2): " << name1 << endl;
    // Длина
    size_t len = strlen(name1);
    cout << "strlen(name1): " << len << endl;
    // Сравнение
    int cmp = strcmp(name1, name3);
    cout << "strcmp(name1, name3): " << cmp << endl;
    return 0;
}

Вывод:

Функции строк в C++: strcpy, strcat, strlen, strcmp — практические примеры

Основные выводы

Язык C

  1. Освоение строк в Java: создание, методы и лучшие практики
  2. Строковые представления в Java Enums: настройка toString() и лучшие практики
  3. Переменные и типы данных в C++: подробное руководство по int, double, char, string, bool
  4. Массивы в C++: объявление, инициализация и работа с указателями
  5. Цикл do-while в C++: синтаксис, примеры и вложенные циклы
  6. Указатели в C++: концепции, примеры и практические применения
  7. Тип данных char в C++: объявление, ASCII и методы преобразования
  8. Перегрузка операторов в C++: практическое руководство с примерами кода
  9. Функции в C++: подробное объяснение с практическими примерами кода
  10. Строки в C просто: объявление, ввод, вывод и библиотечные функции