Слайд 2Константи-рядки
Рядкова константа – перелік символів,
записаної в подвійних лапках. Вона має
тип
char[].
Запис рядкових констант.
"This is character string"
"Це рядкова константа"
"A" "1234567890" "0"
"$"
Слайд 3Cимвольні рядки
char m1[ ]=“Один рядок.";
Ідентично:
char m1[ ]={‘О',‘д',‘и',‘н',‘ ',‘р',‘я',‘д', ‘о',‘к',
,'.','\0'}
char title[64] = "Учимся п";
Розміщення рядка в пам’яті:
Слайд 4Введення-виведення рядків
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
// Потокове введення-виведення
#include // Консольний режим роботи
using namespace std;
// Використання стандартного простору імен
int main()
{ char str[80];
cout << "Введіть рядок: "; cin >> str;
// Зчитуємо рядок з клавіатури.
cout << " Ваш рядок: ";
cout << str;
getch(); return 0;
}
Слайд 6Використання функції gets() для зчитування рядка з клавіатури.
#include
// Потокове введення-виведення
#include
// Підтримка системи введення-виведення
#include // Консольний режим роботи
using namespace std;
// Використання стандартного простору імен
int main()
{ char str[80];
cout << "Введіть рядок: "; gets(str);
// Зчитуємо рядок з клавіатури.
cout << "Ось Ваш рядок: ";
cout << str;
getch(); return 0; }
Слайд 11Обробка рядків
#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,
*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 – об'єднати два рядки, де із другого рядка
копіювати не більше 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(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;
int main(void)
{char *string = "Borland International"; printf("%d\n", strlen(string));
getch(); return 0;}
Слайд 16Обробка рядків
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 будь-який символ із
рядка 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 лексеми, розділені кожним
із множини символів, що входять у рядок 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;}