Я пытаюсь изменить строку, но следующее НЕ работает. Вот мой I/O:Simple C++ String Reversal
Enter text to be reversed:
>> Alex
Reversed, it is: llex
Вот мой код:
string Reversal(string name) {
for(double i = name.length() - 1 ; i >= 0; i--) {
int j = 0;
name[j] = name[i];
j++;
}
return name;
};
int main(int argc, const char * argv[]) {
string name;
cout << "Enter text to be reversed: " << endl;
cin >> name;
cout << "Reversed, it is: " << Reversal(name) << endl;
return 0;
}
Примечание: Это прекрасно работает, когда я использую функцию реверса, встроенный в библиотеку:
reverse(name.begin(),name.end())
Я просто хочу чтобы узнать, почему моя функция не будет работать. Я пытаюсь изменить строку без использования каких-либо дополнительных строк.
Почему вы используете двойной в цикл –
@EdHeal Он сказал, что потеря данных при использовании INT я, чтобы придать ему значение name.length(). Я просто использовал double, чтобы заткнуть предупреждение (OCD об этих желтых предупреждениях ха-ха). – Alok
Добавьте 'cout << name << endl;' внутри цикла, и вы увидите, что происходит. – molbdnilo