Help, please :) | SoloLearn: Learn to code for FREE!


Help, please :) #include <iostream> #include <cstring> using namespace std; int main() { string word; string trans; //cout<<"Enter a word to translate - "; cin>>word; //cout<<endl<<"Translation - "; int l=word.length(); //gets string length do { // writes the word backward l--; trans+=word[l]; } while (word[l]); cout<<trans; return 0; } Frustrated:( Why does it think that the code is incorrect?


12/21/2019 12:28:56 PM

Dmitriy Sychov

6 Answers

New Answer


Lets say the word is "h" ( because I'm too lazy to come up with a word ) I = 1; ( length = 1 ) Begin: I--; ( I = 0 ) trans += 'h' If h go back to Begin: Since h will result in true, we go back to Begin: I-- ( I = -1 ) trans += "???" Sometimes you should go for the rubber duck debugging approach


The rubber duck debugging approach is just a method where you go line by line and explain yourself what is happening and compare it with what is supposed to happen and in that way, find the bug(s). while( l ) might work with the test cases, but it still doesn't handle the case when the word length is 0, so watch out for that. But I can understand it if you choose to ignore that, since for this particular problem, that won't happen anyway.


I've just got the problem. There is some base code in the task which was deleted by me and replaced fully by ready code. I will try again to resolve by adding needed part to the base.


Dennis, thanks for the comment. By the way, I didn't understand it :D Will try to Google your last sentence. What about the code. I replaced 'while (word[l])' with 'while (l)' and it works now.


Dennis, thanks. I understood.


Selam meraba