Печать массива символов с использованием указателя на символ.

0

В main.cpp я должен напечатать свой массив char следующим образом:

const char *str(CValue::TestStringValue0());
cout << ' ' << *str << endl; //must not change

Я не могу это изменить! Поэтому мне нужно напечатать мой массив char, но не первое значение массива.

TestStringValue выглядит так.

static const char* TestStringValue0() {...}
  • 0
    Не понимаю вопроса
  • 0
    Можете ли вы показать код для TestStringValue0() ? Вместо возврата, например, str вы должны вернуть str+1
Показать ещё 4 комментария
Теги:

2 ответа

1
Лучший ответ

Я не уверен, что правильно вас понимаю, но если вы не должны изменять эту строку:

cout << ' ' << *str << endl; //must not change

Тогда вы можете сделать вот так:

const char *tempStr(CValue::TestStringValue0());
const char **str = &tempStr;
cout << ' ' << *str << endl; //must not change

В этом случае cout выведет всю строку, возвращенную из TestStringValue0, тогда как в исходном коде будет напечатан только первый символ.

PS Какое странное состояние у вас есть :)

  • 0
    Зачем вам временная переменная?
  • 0
    Большое спасибо, чувак! Я делаю некоторый проект, и в main.cpp у нас есть несколько тестов, которые мы не можем модифицировать.
Показать ещё 2 комментария
1
const char *str(CValue::TestStringValue0());
const char *p = str;

for ( ; *str; ++str )
{
    cout << ' ' << *str << endl; //must not change
}

:)

  • 0
    Я думал об этом тоже :) Хороший один :) Единственная проблема , это глупо endl в конце cout :)
  • 1
    @ FreeNickname Это не endl, что глупо. Это глупый assignmnet :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню