Программирование · 4 min read · Oct 09, 2025

Изучение C/C++ шаг за шагом - Страница 8

08. Шаг за Шагом C/C++ — Программирование на C - Строки

Строки
- Введение
- Характеристики строк
- Операции со строками

| | 1. Определение строк

  1. Инициализация строк
  2. Чтение и вывод строк
  3. Чтение встроенных пробелов
  4. Длина строки
  5. Строки и функции
  6. Массив строк |

Введение

Массивы используются для работы со строками, в общем, строки являются переменными типа массив.
Строка — это коллекция символов, включая пробел, в то время как слово — это коллекция символов, исключая пробел. Каждая строковая переменная должна заканчиваться символом ‘\0’ (нулевой символ), а индексное значение начинается с 0.

Каждая строка имеет следующие характеристики:

| | 1. Она должна быть коллекцией символов (т.е. символов, чисел и специальных символов).

  1. Каждая строка должна заканчиваться NULL-символом (т.е. ‘\0’)
  2. Уникальный положительный номер, называемый индексом, идентифицирует каждый символ строки.
  3. Значение индекса должно начинаться с 0.
  4. Случайный доступ к символам в строке возможен.
  5. Строка должна быть объявлена с фиксированным размером, как массивы. |

Для примера рассмотрим следующий пример:

char str = " magic";

| | |

Разнообразные функции библиотеки строк используются для манипуляции строками. Массив строк — это массив массивов типа char.

Операции со строками

Мы можем выполнять гораздо лучшие операции, чем используя функции библиотеки строк.
Строки могут принимать следующие операции.

| | 1. Определение строк

  1. Инициализация строк
  2. Чтение и вывод строк
  3. Чтение встроенных пробелов
  4. Длина строки
  5. Строки и функции
  6. Массив строк |

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]);
} |

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.