Основные функции стандартной библиотеки string.h

Основные функции стандартной библиотеки string.h приведены в таблице.

Функция Описание
char *strcat(char *s1,char *s2) присоединяет s2 к s1, возвращает s1
char *strncpy(char*s1, char *s2, int n) копирует не более n символов строки s2 в строку s1, возвращает s1;
int strcmp(char *s1,char *s2) сравнивает s1 и s2, возвращает значение 0, если строки эквивалентны
int strncmp(char *s1,char *s2, int n) сравнивает не более n символов строк s1 и s2, возвращает значение 0, если начальные n символов строк эквивалентны
int strlen(char *s) возвращает количество символов в строке s
char *strset(char *s,char c) заполняет строку s символами, код которых равен значению c, возвращает указатель на строку s
char *strnset(char *s,char c, int n) заменяет первые n символов строки s символами, код которых равен c, возвращает указатель на строку s

Пример использования функций

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()

{

char m1[80] = "Первая строка";

char m2[80] = "Вторая строка";

char m3[80];

system("chcp 1251");

system("cls");

strncpy(m3, m1, 6); // не добавляет '\0' в конце строки

puts("Результат strncpy(m3, m1, 6)");

puts(m3);

strcpy(m3, m1);

puts("Результат strcpy(m3, m1)");

puts(m3);

puts("Результат strcmp(m3, m1) равен");

printf("%d", strcmp(m3, m1));

strncat(m3, m2, 5);

puts("Результат strncat(m3, m2, 5)");

puts(m3);

strcat(m3, m2);

puts("Результат strcat(m3, m2)");

puts(m3);

puts("Количество символов в строке m1 равно strlen(m1): ");

printf("%d\n", strlen(m1));

strnset(m3, 'f', 7);

puts("Результат strnset(m3, 'f', 7)");

puts(m3);

strset(m3, 'k');

puts("Результат strnset(m3, 'k')");

puts(m3);

getchar();

return 0;
}

Результат выполнения


 

Сложные типы данных в Си

Структура — это объединение нескольких объектов, возможно, различного типа под одним именем, которое является типом структуры. В качестве объектов могут выступать переменные, массивы, указатели и другие структуры.

Структуры позволяют трактовать группу связанных между собой объектов не как множество отдельных элементов, а как единое целое. Структура представляет собой сложный тип данных, составленный из простых типов.

Общая форма объявления структуры:

struct тип_структуры
{

тип ИмяЭлемента 1;

тип ИмяЭлемента 2;

. . .

тип Имя Элемента n;
};

После закрывающей фигурной скобки } в объявлении структуры
обязательно ставится точка с запятой.

Пример объявления структуры

struct date
{

int day; // 4 байта

char *month; // 4 байта

int year; // 4 байта
};

Поля структуры располагаются в памяти в том порядке, в котором они объявлены:

В указанном примере структура date занимает в памяти 12 байт. Кроме того, указатель *monthпри инициализации будет началом текстовой строки с названием месяца, размещенной в памяти.

При объявлении структур, их разрешается вкладывать одну в другую.

Пример

struct persone
{

char lastname[20]; // фамилия

char firstname[20]; // имя

struct datebd; // дата рождения
};