Строки С++
C ++ предоставляет следующие два типа строковых представлений —
- Строка символов в стиле C.
- Тип класса string, представленный в Standard C++.
Строка символов стиля C
Строка символов в стиле C возникла в языке C и продолжает поддерживаться в C++. Эта строка на самом деле представляет собой одномерный массив символов, заканчивающийся нулем. символ '\0'. Таким образом, строка с завершающим нулем содержит символы, из которых состоит строка, за которой следует null. .
Следующее объявление и инициализация создают строку, состоящую из слова «Hello». Чтобы содержать нулевой символ в конце массива, размер массива символов, содержащего строку, должен быть на единицу больше, чем количество символов в слове «Hello».
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
Если вы следуете правилу инициализации массива, то вы можете написать приведенный выше оператор следующим образом —
char greeting[] = "Hello";
Ниже приведено представление в памяти определенной выше строки в C/C++ —
На самом деле вы не ставите нулевой символ в конце строковой константы. Компилятор C++ автоматически помещает '\0' в конец строки при инициализации массива. Давайте попробуем напечатать вышеупомянутую строку —
Живая демонстрация#include <iostream> using namespace std; int main () { char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; cout << "Greeting message: "; cout << greeting << endl; return 0; }
Когда приведенный выше код скомпилирован и выполнен, он дает следующий результат —
Greeting message: Hello
C++ поддерживает широкий спектр функций, которые управляют строками с завершающим нулем —
Старший № | Функция и назначение |
---|---|
1 | <тд>|
2 | <тд>|
3 | <тд>|
4 | <тд>|
5 | <тд>|
6 | <тд>
В следующем примере используются некоторые из вышеупомянутых функций —
Живая демонстрация#include <iostream> #include <cstring> using namespace std; int main () { char str1[10] = "Hello"; char str2[10] = "World"; char str3[10]; int len ; // copy str1 into str3 strcpy( str3, str1); cout << "strcpy( str3, str1) : " << str3 << endl; // concatenates str1 and str2 strcat( str1, str2); cout << "strcat( str1, str2): " << str1 << endl; // total lenghth of str1 after concatenation len = strlen(str1); cout << "strlen(str1) : " << len << endl; return 0; }
Когда приведенный выше код скомпилирован и выполнен, он выдает что-то вроде следующего:
strcpy( str3, str1) : Hello strcat( str1, str2): HelloWorld strlen(str1) : 10
Класс String в C++
Стандартная библиотека C++ предоставляет строку тип класса, который поддерживает все операции, упомянутые выше, а также гораздо больше функциональных возможностей. Давайте проверим следующий пример —
Живая демонстрация#include <iostream> #include <string> using namespace std; int main () { string str1 = "Hello"; string str2 = "World"; string str3; int len ; // copy str1 into str3 str3 = str1; cout << "str3 : " << str3 << endl; // concatenates str1 and str2 str3 = str1 + str2; cout << "str1 + str2 : " << str3 << endl; // total length of str3 after concatenation len = str3.size(); cout << "str3.size() : " << len << endl; return 0; }
Когда приведенный выше код скомпилирован и выполнен, он выдает что-то вроде следующего:
str3 : Hello str1 + str2 : HelloWorld str3.size() : 10
Язык C
- C# Строка
- Операторы С++
- С++ Комментарии
- Шаблоны классов С++
- Java-строки
- Строки перечисления Java
- Переменные и типы С++:int, double, char, string, bool
- Строки C++:strcpy(), strcat(), strlen(), strcmp() ПРИМЕРЫ
- Строки в C:как объявить переменную, инициализировать, распечатать, пример
- Java — класс строк