#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main(){
char zahl[255];
cin>>zahl;
for(int i=255; i>=0; i--)
if(zahl[i] != 0)
cout<<zahl[i];
cout<<endl;
return 0;
}
Когда я ввожу несколько слов, вход меняется, но до и после этого есть неопределенные выражения. Может ли кто-нибудь объяснить причину этого? Насколько я понял, массив символов заполняется вставленным выражением (из [0] on), остальное заполняется '\ 0. По условию if я пропускаю '\ 0. Откуда берутся неопределенные выражения?реверсивный вход - неопределенный вывод
ти встречает CS
Попробуйте использовать [ 'станд :: reverse'] (http://www.cplusplus.com/reference/algorithm/reverse/?kw = reverse) вместо того, чтобы сворачивать свои собственные. – AndyG
Ваша проблема, как правило, в том, что 'zahl' будет иметь дозорный символ' '\ 0'' где-то в индексе до 254. Оставьте это в покое и только обратные символы перед ним. – AndyG
Пример использования 'std :: string' и' std :: reverse': http://ideone.com/HL1znW – AndyG