Что происходит при добавлении числа к символьному массиву
Есть команда : strncmp(s.c_str(), sstr.c_str() + np - r - i, i)
Где:
std::string s, sstr; // И как-то их заполнили
int np, r, i; // И как-то их заполнили
Мне непонятно, что происходит при добавлении числа к буквенному массиву:
sstr.c_str() + np
Ответы (1 шт):
Автор решения: Alrott SlimRG
→ Ссылка
Спасибо @user7860670 и @ar-hovsepyan за помощь!
c_str() возвращает не "буквенный массив", а указатель на первый элемент этого массива, соответственно прибавление числа указателю задействует адресную арифметику и дает новый указатель, сдвинутый относительно исходного на указанное число
Вообше-то нет необходимости сравнивать С_массивы . Удобнее использовать std::string ::compare