В языке C строки представлены массивами символов, причем для их завершения используются нулевые символы.
char name[20];
Приведенное выше объявление позволяет создать массив размером в 20 символов, причем в случае записи в него более длинной строки, лишние символы этой строки будут отброшены.
А это альтернативный метод объявления строки без ограничения ее длины:
char *name = "David Smith"
Множество функций для работы со строками доступно в модуле string стандартной библиотеки.
#include <string.h>
В частности, в данном модуле имеются следующие функции:
strlen()
— возвращает длину строки (без завершающего нулевого символа).strncpy()
— копирует строку в область памяти заданного размера.strcat()
— объединяет две строки.strcmp()
— сравнивает две строки с учетом регистра символов.strcmpi()
— сравнивает две строки без учета регистра символов.strupr()
— переводит символы строки в верхний регистр.strlwr()
— переводит символы строки в нижний регистр.strtok()
— разделяет строку на части по заданному фрагменту.Значения различных типов могут преобразовываться в строки или извлекаться из строк. Для этой цели существуют следующие функции:
atoi()
— преобразует строку в целочисленное значение.atof()
— преобразует строку в значение с плавающей точкой.strtol()
— преобразует строку в длинное целочисленное значение.Перевод отдельных символов в верхний или нижний регистр осуществляется с помощью таких функций, как tolower() и toupper(). Эти функции работают с отдельными символами:
char charlower = tolower('J');
char charupper = toupper('f');
Для обработки всех символов строки вам придется получить доступ к каждому ее символу по отдельности, преобразовать его с помощью одной из указанных функций и заменить оригинальный символ на полученный в результате преобразования.
Загрузить файл исходного кода ToUpper
Загрузить файл исходного кода ToLower
Длина строки без завершающего нулевого символа может быть получена с помощью функции strlen():
int length = strlen("Hello, World");
Строка может быть записана в память с помощью функции strncpy(); две строки могут быть объединены с помощью функции strcat():
char greeting[128];
strncpy(greeting, "Andrew", strlen("Andrew"));
strcat(greeting, " the Great");
Главное следить за тем, чтобы выделенной области памяти хватило для двух строк.
Простой пример вывода строки