Substr c - безопасная обрезка строк в языке C
```htmlКонечно! Вот ваш развернутый ответ на вопрос о функции substr
в языке программирования C.
Функция substr
в C используется для извлечения подстроки из исходной строки. Она принимает три параметра: указатель на исходную строку, начальный индекс подстроки и длину подстроки. Возвращает substr
новую строку, содержащую только выбранную подстроку.
Вот пример кода, демонстрирующий использование функции substr
:
#include <stdio.h>
#include <string.h>
char* substr(const char* str, int start, int len) {
// Вычисляем длину исходной строки
int strLen = strlen(str);
// Проверяем, что начальный индекс подстроки в допустимых пределах
if (start < 0 || start >= strLen) {
printf("Ошибка: неверное значение начального индекса!\n");
return NULL;
}
// Проверяем, что длина подстроки в допустимых пределах
if (len < 0 || len > strLen - start) {
printf("Ошибка: неверное значение длины подстроки!\n");
return NULL;
}
// Создаем массив символов для хранения подстроки
char* result = (char*)malloc((len + 1) * sizeof(char));
// Копируем символы из исходной строки в подстроку
for (int i = start; i < start + len; i++) {
result[i - start] = str[i];
}
// Добавляем завершающий нулевой символ
result[len] = '\0';
return result;
}
int main() {
const char* str = "Привет, мир!";
int start = 8;
int len = 4;
// Извлекаем подстроку
char* sub = substr(str, start, len);
// Выводим результат на экран
printf("Подстрока: %s\n", sub);
// Освобождаем память, выделенную для подстроки
free(sub);
return 0;
}
В данном примере исходная строка Привет, мир!
и мы хотим извлечь подстроку, начиная с индекса 8 (символ "м") и длиной 4 символа. Функция substr
проверяет входные параметры: начальный индекс должен быть больше или равен нулю и меньше длины строки, а длина подстроки должна быть положительной и не превышать доступную длину. Затем выделяется память под новую строку, копируются символы из исходной строки в новую подстроку, и завершается нулевым символом. Результат выводится на экран, а выделенная память освобождается при помощи функции free
.
Надеюсь, данный пример помог вам лучше понять, как использовать функцию substr
в C. Если у вас возникнут еще вопросы, не стесняйтесь задавать!