C++ string


string використовуються для зберігання тексту.

Приклад створення текстової змінної:

string greeting = "Hello"; // Створюємо змінну типу string і привласнюємо їй значення: Hello
#include <iostream>

// підключення бібліотеки для роботи з текстовими змінними
#include <string>

using namespace std;

int main() {

  string greeting = "Hello";  // ініціалізація текстової змінної

  cout << greeting;           // відображення текстової змінної в консолі

  return 0;

}

String конкатенація

+ оператор може використовуватися між рядками, щоб додати їх разом, щоб створити новий рядок. Це називається конкатенацією :

#include <iostream>
#include <string>
using namespace std;
 
int main () {

  string firstName = "John ";
  string lastName = "Doe";

  string fullName = firstName + lastName;  // обєднання двох рядків тексту (конкатенація)

  cout << fullName;                        // John Doe

  return 0;

}


// RESULT:
// John Doe

String довжина текстової змінної

#include <iostream>
#include <string>
using namespace std;

int main() {

  string txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

  // txt.length() визначення довжини текстової змінної txt
  cout << "The length of the txt string is: " << txt.length();  

  return 0;
}

// RESULT:
// The length of the txt string is: 26 

String доступ

Ви можете отримати доступ до символів в рядка, звертаючись до нього по порядковому номеру в квадратних дужках [] .

Цей приклад виводить перший символ з myString :

string myString = "Hello";
cout << myString[0];         // H  -  myString[0] отримуємо 0 елемент строки

// RESULT:
// H

Індекси рядків починаються з 0 : [0] є першим символом. [1] є другим символом і так далі.

Цей приклад друкує другий символ з myString :

string myString = "Hello";
cout << myString[1];        // e

Зміна символів рядка

Для того, щоб змінити значення певного символу в рядку, зверніться до номеру індексу, а також використовуйте одинарні лапки:

string myString = "Hello";   // Hello
myString[0] = 'J';           // замінюємо першу букву на J
cout << myString;            // Jello

// RESULT:
// Jello

String введення в консоль

string firstName;

cout << "Type your first name: ";
cin >> firstName;                       // отримуємо дані з клавіатури -> firstName
cout << "Your name is: " << firstName;  

// Type your first name: Andrew
// Your name is: Andrew

Тим не менше, cin вважає пробіл(пропуск) в якості завершального знаку, що означає, що він може відображати тільки одне слово (навіть якщо ви друкуєте багато слів): 

string fullName;
cout << "Type your full name: ";
cin >> fullName;
cout << "Your name is: " << fullName;

// Type your full name: John Doe
// Your name is: John

З наведеного вище прикладу, можна очікувати , що програма виведе John Doe , але виведе John .

Саме тому, при роботі з рядками, ми часто використовуємо getline() функцію для читання рядка тексту. Він приймає в cin якості першого параметра, і строкової змінної в якості другого:

string fullName;
cout << "Type your full name: ";

getline (cin, fullName);    // отримуємо всі введені значення з пробілами

cout << "Your name is: " << fullName;

// Type your full name: John Doe
// Your name is: John Doe 

Додавання чисел і рядків

УВАГА!

C++ використовує + оператор для додавання і конкатенації.

Числа додаються. Рядки з'єднюються.

Якщо додати два числа, то результатом буде сума чисел:

int x = 10;
int y = 20;
int z = x + y;      // z = 30 (integer) число

Якщо додати два рядки, то результатом буде конкатенація:

string x = "10";
string y = "20";
string z = x + y;   // z = "1020" (string) текст

Якщо ви намагаєтеся додати число з текстом, виникає помилка:

string x = "10";
int y = 20;
string z = x + y; // помилка

Пропуск namespace

Ви можете побачити деякі програми на C++ , які працюють без стандартної бібліотеки просторів імен. using namespace std . Значення  можуть бути пропущені і замінені на ключове слово std , після чого :: оператор для string ( cout ) об'єктів:

#include <iostream>
#include <string>

int main() {
  std::string greeting = "Hello";
  std::cout << greeting;
  return 0;
} 

Наш партнер:
beta test mp3 playlist downloader