Программирование · 4 min read · Oct 09, 2025
Изучение C/C++ шаг за шагом - Страница 8
08. Шаг за Шагом C/C++ — Программирование на C - Строки
| Строки | |
| - Введение | |
| - Характеристики строк | |
| - Операции со строками |
| | 1. Определение строк
- Инициализация строк
- Чтение и вывод строк
- Чтение встроенных пробелов
- Длина строки
- Строки и функции
- Массив строк |
Введение
Массивы используются для работы со строками, в общем, строки являются переменными типа массив.
Строка — это коллекция символов, включая пробел, в то время как слово — это коллекция символов, исключая пробел. Каждая строковая переменная должна заканчиваться символом ‘\0’ (нулевой символ), а индексное значение начинается с 0.
Каждая строка имеет следующие характеристики:
| | 1. Она должна быть коллекцией символов (т.е. символов, чисел и специальных символов).
- Каждая строка должна заканчиваться NULL-символом (т.е. ‘\0’)
- Уникальный положительный номер, называемый индексом, идентифицирует каждый символ строки.
- Значение индекса должно начинаться с 0.
- Случайный доступ к символам в строке возможен.
- Строка должна быть объявлена с фиксированным размером, как массивы. |
Для примера рассмотрим следующий пример:
char str = " magic";| |
|
Разнообразные функции библиотеки строк используются для манипуляции строками. Массив строк — это массив массивов типа char.
Операции со строками
Мы можем выполнять гораздо лучшие операции, чем используя функции библиотеки строк.
Строки могут принимать следующие операции.
| | 1. Определение строк
- Инициализация строк
- Чтение и вывод строк
- Чтение встроенных пробелов
- Длина строки
- Строки и функции
- Массив строк |
1. Определение строки
Каждая переменная должна быть объявлена в начале программы.
Определение переменной строки выглядит следующим образом.
| |
|
2. Инициализация строк
Строки могут быть инициализированы следующими методами.
| | 1. Прямое присвоение char name[10] = "Ashitha"; Присваивает “Ashitha” переменной name, остальная часть места остается пустой. | 2. Прямое присвоение без размера char name[] = "Ashitha"; Присваивает “Ashitha” переменной name и фиксирует её ширину до размера константы. | | | 3. Присвоение во время проектирования char name[10];
strcpy(name, “Ashitha”); Используя функции строк, это возможно.
Но C никогда не поддерживает присвоение, как:
name = “Ashitha”; | 4. Присвоение во время выполнения char name[10];
scanf(“%s”, name); Это принимает и присваивает постоянное значение переменной во время выполнения. |
3. Чтение и вывод строк
C предоставляет различные типы функций строк для чтения и вывода строковой константы. Список ниже.
| | Вводные операторы
getch
getche
getchar
gets
scanf | Выводные операторы
putch
putchar
puts
printf |
| | / Программа для приема и отображения строки /
/ 51_strings.c /
#include
int main()
{
char str[20];
scanf(“%s”, str);
printf(“%s” str);
return 0;
} |
| | / Программа для приема и отображения строки с подсказкой /
/ 52_strings.c /
#include
int main( )
{
char str[20];
printf(“Введите строку :”); scanf(“%s”, str);
printf(“\nВы ввели : %s”, str);
return 0;
} |
4. Чтение встроенных пробелов
scanf принимает строку, таким образом, он будет читать строки, состоящие из одного слова, но все, что напечатано после пробела, будет отброшено.
Пример. Введите строку: Law is a bottomless pit.
Вы ввели: Law
Чтобы прочитать текст, содержащий пробелы, мы используем другую функцию, gets().
| | /чтение строки с встроенными пробелами /
/ 53_gets.c /
const int MAX = 80;
int main()
{
char str[MAX];
print(“Введите строку :”); gets(str);
printf(“Вы ввели :”); puts(str);
return 0;
} |
5. Длина строки
Каждая строка имеет фиксированную длину в зависимости от своей константы.
Следующая программа демонстрирует, как найти длину строки.
| | / Чтобы найти длину данной строки /
/ 53_length.c /
#include
int main()
{
int i=0;
char str[50];
printf(“Введите строку “); gets(str);
while(str[i] != ‘\0’) i++;
printf(“Длина = %d”, i);
return 0;
} |
6. Строки и функции
Функция — это самодостаточный блок операторов, который выполняет конкретную задачу. Лучший способ организовать строки.
Следующие примеры демонстрируют организацию строк с использованием функций.
| | / Программа для нахождения длины строки /
/ 54_len.c /
#include
int len_str(char s[]); int main()
{
int l; char str[50];
printf(“Введите строку “); gets(str);
l = len_str(str);
printf(“\nДлина строки : %d”, l);
} int len_str(char s[])
{
int l=0;
while(s[l] != ‘\0’) l++;
return l;
} |
| | / Программа для приема и вывода строки /
/ 55_str.c /
#include
void disp_str(char s[]); int main()
{
char str[50];
printf(“Введите строку “); gets(str);
disp_str(str);
return 0;
} void disp_str(char s[])
{
int i=0;
while( s[i] != ‘\0’ ) putch(s[i++]);
} |
7. Массив строк
Массивы используются для работы со строками, в общем, строки являются переменными типа массив. Таким образом, мы можем получить доступ к массиву строк.
Следующие примеры иллюстрируют, как организован массив строк.
| | / Программа для отображения массива строк /
/ 56_display.c /
#include
void main()
{
char week[7][] = { “Воскресенье”, “Понедельник”, “Вторник”, “Среда”, “Четверг”, “Пятница”, “Суббота” };
int i;
for( i = 0; i<7; i++) puts(week[i]);
} |
| | / Программа для приема и отображения массива строк /
/ 57_strings.c /
#include
void main()
{
char names[7][10]; int i;
for( i = 0; i<7; i++) gets(names[i]);
for( i = 0; i<7; i++) puts(names[i]);
} |
Get new posts in your inbox
No spam. Unsubscribe anytime.