Программирование на языке си ( с ) | C Sharp (Си шарп) с нуля. Сортировки | Массивы | Функции

Работа со строками в c ( си ) | массив строк | длина

   Работа со строками в c ( си )

Неслучайно тему про строки я поместил в раздел "Массивы". Так как строка это, по сути, массив символов. Вот пример:

char str[] = "Это просто строка";

Эту же строчку для большего понимания можно записать вот так:

char str[] = {'Э','т','о',' ','п','р','о','с','т','о','','с','т','р','о','к','а'};

Т.е. все тот же массив, только состоящий уже из символов. Поэтому работать с ним можно, так же как и с целочисленными массивами.

А теперь давайте попробуем работать со строками в c. На вводных уроках мы разбирали, что символы относятся к целочисленным типам, т.е. каждый символ имеет свое числовое значение. Вот пример и его решение:

  1. требуется перевести введенное слово в верхний регистр:
  2. #include <conio.h>
    #include <stdio.h>

    int main()
    {
        char str[] = "sergey";
        for (int i=0; str[i] != '\0';i++){
           str[i] -= 32;
        }
        for (int i=0; str[i] != '\0';i++){
           printf ("%c", str[i]);
        }
        getch();

    return 0;
    }

    для получения кода числа просто воспользуйтесь в функции printf спецификатором %d. Да, и еще один важный момент: окончанием любой строки является нуль-терминатор, который обозначается специальным символом - '\0'.

Еще одним способом указания строки является объявление ее через char*. Вот пример:

char *str = "provod";

Т.е. создается указатель на строку, который располагается где-то в памяти.

А вот как можно вводить строки через, нам уже родной, опертаор scanf:

char str[16]; scanf("%s", str);

Тут две тонкости:

  1. знак взятия адреса тут не нужен, так как имя массива, как мы уже знаем, и является адресом
  2. Длина вводимой строки не должна превышать 15 символов, так как последним обязательно должен быть нуль-терминатор. Причем компилятор сам заполнит этот символ после последнего введенного вашего символа.

Так как язык Си является языком структурным, то существуют уже встроенные функции для работы со строками и с символами. Для обработки строк вам понадобится подключить файл: ctype.h. Файл содержит функции определения регистра, формата символов. В принципе, все, что вам может понадобится узнать о символе, можно выполнить с помощью функций файла ctype.h

Иногда вам может понадобиться перевести строку в другой тип данных. Для перевода строк в другие типы существует библиотека stdlib. Вот ее функции:

  1. int atoi (char *str)
  2. long atol (char *str)
  3. double atof (char *str)

Иногда эти функции очень помогают, например, когда вам надо извлечь из строки год или цифровое значение. Работа со строками в c ( си ) является очень важной темой, поэтому постарайтесь вникнуть в этот урок.

Задания:

  1. у нас есть строка str = "Rabota ne volk v les ne ybeshit". Нужно составить двумерный массив символов размером 4*4 РЕШЕНИЕ

Предвидущие уроки:

  1. Одномерные массивы
  2. Многомерные массивы

Следующие уроки:

  1. Функции работы со строками
При копировании ( использовании ) материала размещайте ссылку на сайт www.mir-koda.ru