
C. Тема 1. Раздел 7
.pdf
Тема 1. Основные сведения о языке. Раздел 7. Строки

Представление строк в Си
Операции со строками
Unicode

Часть 1

В языке Си нет специального типа данных для представления строк
Строки представлены массивами символов
В конце каждой строки размещается символ с кодом 0

Строковая константа – это последовательность символов, заключённая в кавычки
Примеры
"This is ANSI C simple string"
"Это простейшая строка в языке Си"
В конце каждой строковой константы компилятор автоматически добавляет символ
'\0'
Вставка в строку символа кавычек
"asdf\"ghjk"

char string1[] = "Some string";
char string2[] =
{'S', 'o', 'm', 'e', ' ', 's', 't', 'r', 'i', 'n', 'g', '\0'};
char *string3 = "Some string";
В чём разница этих вариантов инициализации?
|
string1++; |
// Ошибка |
компиляции |
|
string2++; |
// Ошибка |
компиляции |
|
string3++; |
// Допустимо |
string1 = string3; // Ошибка компиляции
string1 = string2; // Ошибка компиляции
string3 = string1; // Допустимо

Часть 2

Складывать
string1 + strng2
Сравнивать
string1 == string2
string1 != string2
string1 > string2
string1 >= string2
Копировать
string1 = string2

Использовать функции стандартной библиотеки string
strcat – конкатенация (сложение) двух строк
strncat – конкатенация (сложение) первой строки и n начальных символов второй строки
strcmp – сравнение двух строк
strncmp – сравнение первых n символов двух строк
strcpy – копирование одной строки в другую строку
strncpy – копирование первых n символов одной строки в другую строку

strlen – определение длины строки (не путать с sizeof)
strchr – поиск в строке первого вхождения указанного символа
strrchr – поиск в строке последнего вхождения указанного символа
strpbrk – поиск в одной строке любого из множества символов, входящих во вторую строку
strspn – определение длины отрезка одной строки, содержащего символы из множества символов, входящих во вторую строку
strcspn – определение длины отрезка одной строки, не содержащего символы второй строки
strtok – выделяет из одной строки лексемы (кусочки), разделенные любым из множества символов (разделителей), входящих во вторую строку