Код который должен заменять символы, но он выдает ошибку
const char* mess[] = { "aba" };
const char* test;
int n = strlen(mess);
for (int i = 0; i < n; i++) {
if (mess[i] == "a") test[i] = "b";
if (mess[i] == "b") test[i] = "a";
}
Ошибка: выражение должно быть допустимым для изменения левосторонним значением (test)
const char* mess[] = { "aba" };
Ну, обычный нормальный массив... Заметим - массив указателей.
const char* test;
Указатель куда-то - неизвестно куда, но на неизменяемый (константный) символ.
int n = strlen(mess);
for (int i = 0; i < n; i++) {
Ну, тут понятно - по всем символам первого элемента в массиве mess
.
if (mess[i] == "a") test[i] = "b";
if (mess[i] == "b") test[i] = "a";
Т.е. пытаемся менять неизменяемые символы? Компилятор против. Вот если бы test
был объявлен как char * test;
... Правда, все равно бы не работало - присваивать символу указатель на строку все равно нельзя.
И это очень хорошо - потому что если бы он это разрешил, вашим следующим вопросом было бы "почему программа вылетает"? Кстати, вы уже поняли, почему? Причин две: выход за пределы массива mess
- в нем только один элемент, а длина первого элемента - 3. А вторая - запись по случайному адресу через test
.
И еще - мне думается, что вы вот тут - mess[i] == "a"
- хотели проверить совсем иное. Сейчас вы проверяете, равен ли адрес, хранящийся в i
-м элементе массива, адресу строки "a"
. Конечно, нет...
Мне кажется, что вы хотели чего-то в этом роде:
const char mess[] = "aba";
char* test = new char[strlen(mess)+1];
strcpy(test,mess);
int n = strlen(mess);
for (int i = 0; i < n; i++)
{
if (mess[i] == 'a') test[i] = 'b';
if (mess[i] == 'b') test[i] = 'a';
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Хочу сделать загрузку файла по ссылке (пример - http://examplecom/test
Всё собрал но текст появляется и тут же пропадает и нет текста INTERRUPT в QEMU постоянно обновляется мигает в окошке в QEMU запускал на Ubuntu 1604 запускаю...
Передо мной схема ОСИду сверху вниз - Applications, System Libraries, System Call Interface etc
Всем привет, написал код по поиску простых чисел и запоминания этих чисел и их степеней: