Приклад

#include <string>

using namespace std;

int main()

{

string hi(“hello”); // створення й ініціалізація нового рядка

string lo=“greetings”; // ще одна ініціалізація

string g(lo); // третя ініціалізація

string es=””; // порожній рядок

string s; // ініціалізація порожнього рядка

return 0;

}

 

2.3 Передача рядків в якості параметрів функцій

Рядок в Сі + + - це масив символів, що закінчується нуль-символом - '\ 0' (нуль-термінатором). За положенням нуль-термінатора визначається фактична довжина рядка. Кількість елементів у такому масиві на 1 більше, ніж зображення рядки.

Для роботи з рядками існують спеціальні бібліотечні функції, які містяться в заголовному файлі string.h.

Рядки при передачі в функції можуть передаватися як одномірні масиви типу char або як вказівники типу char *. На відміну від звичайних масивів у функції не вказується довжина рядка, т. к. в кінці рядка є ознака кінця рядка / 0.

/ / Функція пошуку заданого символу в рядку

int find (char * s, char c)

{

for (int I = 0; I <strlen (s); I + +)

if (s [I] == c) return I;

return -1

}

 

Таблиця 19 – Стандартні функції обробки рядків

 

прототип функції Короткий опис Примітка
unsigned strlen(const char* s); Обчислює довжину рядка s.  
int strcmp(const char* s1, const char* s2); Порівнює рядки s1 і s2. Якщо s1 <s2, то результат отріцательний, якщо s1==s2, то результат дорівнює 0, якщо s2> s1 - результат позитивний.
int strcnmp(const char* s1, const char* s2); Порівнювати перший n символів рядків s1 і s2. Якщо s1 <s2, то результат отріцательний, якщо s1==s2, то результат дорівнює 0, якщо s2> s1 - результат позитивний.
char* strcpy(char* s1, const char* s2); Копіює символи рядка s1 в рядок s2.  
char* strncpy(char* s1, const char* s2, int n); Копіює n символів рядка s1 в рядок s2. Кінець рядка відкидається або доповнюється пробілами.
char* strcat(char* s1, const char* s2); Приписує рядок s2 до рядка s1  
char* strncat(char* s1, const char* s2); Приписують перше n символів рядка s2 до рядка s1  
char* strdup(const char* s); Виділяє пам'ять і переносить в неї копію рядки s При виділенні пам'яті використовуються функції

 

Рядки при передачі в функції можуть передаватися як одномірні масиви типу char або як вказівники типу char *. На відміну від звичайних масивів у функції не вказується довжина рядка, т. к. в кінці рядка є ознака кінця рядка \ 0.

Постановка завдання

Ввести з клавіатури рядок символів і обробити її у відповідності зі своїм варіантом, використовуючи функції.

2. Створити програми обробки рядка