3. Низове

 
"Освен  математически наклонности,  най-важното
достойнство на един  компетентен програмист  е да
владее изключително добре родния си език."
 Едсгар Дейкстра
 
Константи и променливи. Вход и изход за низове.
 
Низ е редица от символи  "Hello"
Дефиниция на променлива  string name="John";
Заглавен файл  #include <string>
Оператор за присвояване  name="Carl";
Извеждане на низове  cout << name;
Вход  cin >> name;
Вход на цял ред  getline(cin, name);
Дължина на низ  int n=name.length();
Празен низ  ""
Автоматична инициализация  string response; 

Поднизове.
string greeting = "Hello World!\n"
string sub = greeting.substr(0, 4);
cout << sub;

 Hell

    Член-функция е функция, свързана с определен тип данни. Тя се извиква с операция точка (.)
 

<име на променлива>.<име на функция>(<параметри на функцията>)

За променливи от тип string са дефинирани следните член-функции:
name.length() - връща дължината на низа;
greeting.substr(0,4)- връща подниз от позиция 0 до позиция 3 (4 символа).
Позициите в низа се броят от 0.

Сливане на низове (конкатенация).
string fname = "Nikolay";
string lname = "Kirov";
string name = fname + lname;
NikolayKirov

string name = fname + " " + lname;
Nikolay Kirov
Поне един от аргументите на сливането трябва да е променлива
// initials.cpp
#include <iostream>
#include <string>
using namespace std;

int main()
{ cout << "Please enter your full name (first middle last): ";
  string first;
  string middle;
  string last;
  cin >> first >> middle >> last;
  string initials = first.substr(0,1) + middle.substr(0,1) + last.substr(0,1);
  cout << "Your initials are " << initials << "\n";
  return 0;
}

Please enter your full name (first middle last): Nikolay
Kirov
Kirov
Your initials are NKK

Форматиране на изхода.
    Когато просто се отпечатват стойностите на променливите, не се получава подредена таблица.
cout << pennies << " " << pennies * 0.01 << "\n";
cout << nickels  << " " << nickels * 0.05 << "\n";
cout << dimes << " " << dimes * 0.10 << "\n";
cout << quarters << " " << quarters * 0.25 << "\n";
 

1 0.01
12 0.6
4 0.4
120 30

 * Използване на манипулатори:
-- setw задава ширината на следващото изходно поле;
  cout << setw(8);
-- setprecision задава (максимален) брой на цифрите след десетичната точка;
  cout << setprecision(2);
-- fixed фиксира броя на цифрите след десетичната точка.
  cout << fixed;
* Манипулаторите са дефинирани в заглавния файл iomanip, т.е. за да ги използваме, трябва да имаме #include <iomanip>
    Така изглежда частта от програмата, която отпечатва подредена таблица:
cout << fixed << setprecision(2);
cout <<setw(8)<< pennies <<" "<< pennies*0.01 << "\n";
cout <<setw(8)<< nickels <<" "<< nickels*0.05 << "\n";
cout <<setw(8)<< dimes <<" "<< dimes*0.10 << "\n";
cout <<setw(8)<< quarters <<" "<< quarters*0.25 << "\n";
 

       1    0.01
      12    0.60
       4    0.40
     120   30.00