Строки C ++: strcpy (), strcat (), strlen (), strcmp () ПРИМЕРЫ

Содержание:

Anonim

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

Строка - это последовательность символов. Строка C ++ - это объект класса std :: string. Символы представляют собой сохраненные последовательности байтов с доступом к одному байту символа.

Строки C ++ динамически выделяют память. При необходимости во время выполнения строки можно выделить больше памяти. Поскольку нет предварительного выделения памяти, нет потерь памяти. Мы можем выполнять различные операции со строками, включая сравнения, конкатенацию, преобразование и т. Д.

В этом руководстве по C ++ вы узнаете:

  • Что такое строка?
  • Объявление строк
    • Строка символов в стиле C
    • std :: string
  • Доступ к строковым значениям
  • Строковые функции:
    • strcpy ()
    • strcat ()
    • strlen ()
    • strcmp ()
    • Пример:

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

C ++ поддерживает два типа объявлений строк:

  • Строка символов в стиле C
  • Тип класса String

Строка символов в стиле C

Этот тип объявления строки был введен в языке программирования C. C ++ продолжает его поддерживать. Это просто одномерный массив символов, заканчивающийся нулевым символом (\ 0). Строка с завершающим нулем содержит символы, которые составляют строку, за которой следует нуль.

Рассмотрим объявление строки, приведенное ниже:

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

Приведенное выше объявление создает строку, образующую слово John. Слово состоит из 4 символов, но строка имеет размер 5. Дополнительный пробел позволяет удерживать нулевой символ.

Используя правило инициализации массива, мы можем написать приведенный выше оператор следующим образом:

char name[] = "John";

Обратите внимание, что вам не нужно помещать нулевой символ в конец строковой константы. Компилятор C ++ автоматически поместит '\ 0' в конец строки при инициализации массива.

std :: string

Стандартная библиотека C ++ предоставляет строковый класс, который поддерживает различные строковые операции. Он записывается как std :: string.

Чтобы использовать этот класс, мы должны сначала включить его в нашу рабочую область с помощью препроцессора #include, как показано ниже:

#include

Затем мы можем объявить нашу строку с помощью ключевого слова string. Например:

string name = "John";

Приведенный выше оператор создаст строку с именем name, в которой будет храниться значение John.

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

В C ++ мы можем получить доступ к строковым значениям, используя имя строки. Например:

#include using namespace std;int main() {char name[5] = { 'J', 'o', 'h', 'n', '\0' };cout << "String value is: ";cout << name << endl;return 0;}

Выход:

Вот скриншот кода:

Пояснение к коду:

  1. Включение файла заголовка iostream в наш код. Это позволит нам читать и писать на консоли.
  2. Включение пространства имен std, чтобы использовать его классы и функции, не вызывая его.
  3. Вызов функции main (), внутри которой нужно добавить логику программы. {Отмечает начало тела функции main ().
  4. Объявление строки символов и присвоение ей имени name. В строке будет храниться значение John. В дополнительном пространстве будет храниться нулевой символ.
  5. Печать текста на консоли.
  6. Печать значения строки с именем name на консоли.
  7. Функция main () должна возвращать значение, если программа работает нормально.
  8. Конец тела функции main ().

Вот еще один пример использования стандартного строкового класса C ++:

#include #include using namespace std;int main() {string name = "Guru99";cout << "The name is : " << name << endl;return 0;}

Выход:

Вот скриншот кода:

Пояснение к коду:

  1. Включение файла заголовка iostream в наш код. Это позволит нам читать и писать на консоли.
  2. Включение стандартного строкового класса в наш код.
  3. Включение пространства имен std, чтобы использовать его классы и функции, не вызывая его.
  4. Вызов функции main (), внутри которой нужно добавить логику программы. {Отмечает начало тела функции main ().
  5. Объявление строки и присвоение ей имени name. В строке будет храниться значение Guru99.
  6. Печать значения имени строки рядом с текстом на консоли.
  7. Функция main () должна возвращать значение, если программа работает нормально.
  8. Конец тела функции main ().

Строковые функции:

Вы часто захотите манипулировать строками. C ++ предоставляет широкий спектр функций, которые вы можете использовать для этого. Эти функции определены в классе CString, поэтому мы должны включить их в наш код, чтобы использовать функции. Давайте обсудим некоторые:

strcpy ()

Это функция копирования строки. Он копирует одну строку в другую.

Синтаксис:

strcpy(string1, string2);

Два параметра функции, строка1 и строка2, являются строками. Функция скопирует строку string1 в строку 1.

strcat ()

Это функция объединения строк. Он объединяет строки.

Синтаксис:

strcat(string1, string2);

Два параметра функции, строка1 и строка2, представляют собой строки, которые необходимо объединить. Вышеупомянутая функция объединит строку string2 с концом строки string1.

strlen ()

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

Синтаксис:

strnlen(string1)

Параметр string1 - это имя строки, длину которой необходимо определить. Вышеупомянутая функция вернет длину строки string1.

strcmp ()

Это функция сравнения строк. Он используется для сравнения строк.

Синтаксис:

strcmp(string1, string2);

Вышеупомянутая функция вернет 0, если строки строка1 и строка2 похожи, меньше 0, если строка1 <строка2 и больше 0, если строка1> строка2.

Пример:

В следующем примере показано, как использовать указанные выше строковые функции:

#include #include using namespace std;int main() {char name1[10] = "Guru99";char name2[10] = "John";char name3[10];int len;strcpy(name3, name1);cout << "strcpy( name3, name1) : " << name3 << endl;strcat(name1, name2);cout << "strcat( name1, name2): " << name1 << endl;len = strlen(name1);cout << "strlen(name1) : " << len << endl;return 0;}

Выход:

Вот скриншот кода:

Пояснение к коду:

  1. Включение файла заголовка iostream в наш код. Это позволит нам читать и писать на консоли.
  2. Включение стандартного класса CString в наш код.
  3. Включение пространства имен std, чтобы использовать его классы и функции, не вызывая его.
  4. Вызов функции main (), внутри которой нужно добавить логику программы. {Отмечает начало тела функции main ().
  5. Объявление строки из 10 символов и присвоение ей имени name1. В строке будет храниться значение Guru99.
  6. Объявление строки из 10 символов и присвоение ей имени name2. В строке будет храниться значение John.
  7. Объявление строки из 10 символов и присвоение ей имени name3.
  8. Объявление целочисленной переменной с именем len.
  9. Копирование строки name1 в строку name3.
  10. Печать значения строки name1 рядом с текстом на консоли. Он должен напечатать Guru99.
  11. Объединение строк name2 в конец строки name1. Теперь значение name1 - Guru99John.
  12. Печать значения строки name1 рядом с текстом на консоли. Он должен напечатать Guru99John
  13. Определение длины строки с именем name1 и присвоение значения длины переменной len.
  14. Печать значения переменной len вместе с другим текстом на консоли.
  15. Функция main () должна возвращать значение, если программа работает нормально.
  16. Конец тела функции main ().

Резюме

  • Строка - это последовательность символов.
  • Строки принадлежат к стандартному классу строк в C ++.
  • Мы можем объявлять строки, используя символьную строку в стиле C или стандартный строковый класс.
  • Функция strcpy () копирует одну строку в другую.
  • Функция strcat () объединяет две функции.
  • Функция strlen () возвращает длину функции.
  • Функция strcmp () сравнивает две строки.