Робота з рядками

Содержание

Слайд 2

Константи-рядки Рядкова константа – перелік символів, записаної в подвійних лапках. Вона

Константи-рядки

Рядкова константа – перелік символів,
записаної в подвійних лапках. Вона має тип
char[].
Запис

рядкових констант.
"This is character string"
"Це рядкова константа"
"A" "1234567890" "0" "$"
Слайд 3

Cимвольні рядки char m1[ ]=“Один рядок."; Ідентично: char m1[ ]={‘О',‘д',‘и',‘н',‘ ',‘р',‘я',‘д',

Cимвольні рядки

char m1[ ]=“Один рядок.";
Ідентично:
char m1[ ]={‘О',‘д',‘и',‘н',‘ ',‘р',‘я',‘д', ‘о',‘к', ,'.','\0'}
char

title[64] = "Учимся п";
Розміщення рядка в пам’яті:
Слайд 4

Введення-виведення рядків gets (char *s ) - прочитати рядок fgets (char

Введення-виведення рядків

gets (char *s ) - прочитати рядок
fgets (char *s, int

n, FILE *stream) - прочитати рядок, включаючи символ нового рядка
puts - записати рядок. В кінці рядка записується символ нового рядка.
fputs(char *s, FILE *stream ) - записати рядок у файл
cin. get(char s[], розмір, символ-роздільник) - символ розриву рядка залишається в буфері
cin. getline(char s[], розмір, , символ-роздільник) – видаляє з буфера символ розриву рядка
Слайд 5

Використання cin для зчитування рядка з клавіатури #include // Потокове введення-виведення

Використання cin для зчитування рядка
з клавіатури
#include // Потокове

введення-виведення
#include // Консольний режим роботи
using namespace std;
// Використання стандартного простору імен
int main()
{ char str[80];
cout << "Введіть рядок: "; cin >> str;
// Зчитуємо рядок з клавіатури.
cout << " Ваш рядок: ";
cout << str;
getch(); return 0;
}
Слайд 6

Використання функції gets() для зчитування рядка з клавіатури. #include // Потокове

Використання функції gets() для зчитування рядка з клавіатури.
#include // Потокове

введення-виведення
#include
// Підтримка системи введення-виведення
#include // Консольний режим роботи
using namespace std;
// Використання стандартного простору імен
int main()
{ char str[80];
cout << "Введіть рядок: "; gets(str);
// Зчитуємо рядок з клавіатури.
cout << "Ось Ваш рядок: ";
cout << str;
getch(); return 0; }
Слайд 7

Обробка рядків

Обробка рядків

Слайд 8

Обробка рядків

Обробка рядків

Слайд 9

Обробка рядків

Обробка рядків

Слайд 10

Обробка рядків

Обробка рядків

Слайд 11

Обробка рядків #include strcpy - копіювати рядок s2 в рядок s1.

Обробка рядків

#include
strcpy - копіювати рядок s2 в рядок s1.
char *strcpy(s1,s2);

//char *s1, *s2;
int main(void)
{char string[10]; char *str1 = "abcdefghi"; strcpy(string, str1); printf("%s\n", string); getch(); return 0;}
strncpy – копіювати не більше n символів рядка s2
char *strncpy(s1,s2,n)
Слайд 12

Обробка рядків strcat – об'єднати два рядки char *strcat(s1,s2); //char *s1,

Обробка рядків

strcat – об'єднати два рядки
char *strcat(s1,s2); //char *s1, *s2;
int

main(void)
{char d [25];
char *b = " ", *c = "C++", *t = “Borland";
strcpy(d, t); strcat(d, b);
strcat(d, c); printf("%s\n", d); getch(); return 0;}
Слайд 13

Обробка рядків strncat – об'єднати два рядки, де із другого рядка

Обробка рядків

strncat – об'єднати два рядки, де із другого рядка копіювати

не більше n символів.
char *strncat(s1,s2,n); //char *s1, *s2;int n;
int main(void)
{char destination[25]; char *source = "structured "; strcpy(destination, "programming"); strncat(destination, source, 8);
printf("%s\n", destination); getch(); return 0;}
Слайд 14

Обробка рядків strcmp – порівняти два рядки в лексикографічному порядку. int

Обробка рядків

strcmp – порівняти два рядки в лексикографічному порядку.
int strcmp(s1,s2); //char

*s1, *s2;
int main(void)
{ char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc"; int ptr; clrscr(); ptr = strcmp(buf2, buf1);
if (ptr > 0) printf("buffer 2 більше buffer 1\n"); else if (ptr < 0) printf("buffer 2 меньше buffer 1\n"); else printf("buffer 2 и buffer 1 рівні\n");
getch(); return 0;}
strncmp –порівняти перші n символів двох рядків
int strncmp(s1,s2, n); //char *s1, *s2;int n;
Слайд 15

Обробка рядків strlen – визначити довжину рядка. int strlen(s); //char *s;

Обробка рядків

strlen – визначити довжину рядка.
int strlen(s); //char *s;
int

main(void) {char *string = "Borland International"; printf("%d\n", strlen(string)); getch(); return 0;}
Слайд 16

Обробка рядків strchr - знайти в рядку перше входження символу с.

Обробка рядків

strchr - знайти в рядку перше входження символу с.
char

*strchr(s,c); //char *s;int n;
int main(void) {char string[20]; char *ptr, c = ‘о'; strcpy(string, "Тестовий рядок"); ptr = strchr(string, c); if (ptr) printf("Символ %c знаходиться в позиції: %d\n", c, ptr); else printf("Такий символ не знайдено"); getch(); return 0;}
strrchr - знайти в рядку останнє входження символу с.
char *strrchr(s,c); // char *s; int c;
Слайд 17

Обробка рядків strpbrk - знайти в рядку s1 будь-який символ із

Обробка рядків

strpbrk - знайти в рядку s1 будь-який символ із рядка

s2.
char *strpbrk(s1,s2); //char *s1, *s2;
int main(void) {char *string1 = "abcdefghijklmnopqrstuvwxyz"; char *string2 = "onm"; char *ptr; ptr = strpbrk(string1, string2); if (ptr) printf("Перший символ: %c\n", *ptr); else printf("Символи не знайдено\n"); getch();return 0;}
Слайд 18

Обробка рядків strtok - виділити з рядка s1 лексеми, розділені кожним

Обробка рядків

strtok - виділити з рядка s1 лексеми, розділені кожним із

множини символів, що входять у рядок s2.
int main(void) {clrscr(); char input[] = "abc,d"; char *p; p = strtok(input, ","); if (p) printf("%s\n", p); p = strtok(NULL, ","); if (p) printf("%s\n", p); getch(); return 0;}