Как обрезать строку [from:to] в c++ для char[]?

Пользователь

от josie , в категории: JavaScript , 6 месяцев назад

Как обрезать строку [from:to] в c++ для char[]?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от brooklyn , 6 месяцев назад

@josie 

В C++ можно использовать функцию strncpy, чтобы обрезать часть символьного массива (char[]):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#include 
#include 

int main() {
    const int maxLength = 100;
    char str[maxLength] = "Hello, World!";

    int from = 6; // начальная позиция обрезки
    int to = 11; // конечная позиция обрезки

    char result[to - from + 1]; // массив для сохранения обрезанной части строки

    strncpy(result, str + from, to - from); // копирование обрезанной части строки
    result[to - from] = ''; // добавление завершающего нулевого символа

    std::cout << result << std::endl; // вывод обрезанной строки

    return 0;
}


В этом примере строка "Hello, World!" будет обрезана с 6-й позиции (символ 'W') до 11-й позиции (символ 'W'). Выходной результат будет: "World".


Здесь мы используем функцию strncpy, чтобы скопировать обрезанную часть строки str в массив result. Затем мы добавляем завершающий нулевой символ, чтобы создать допустимую C-style строку.