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

+1

Help, please :)

https://www.sololearn.com/coach/51?ref=app #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?

cpp

12/21/2019 12:28:56 PM

Dmitriy Sychov

6 Answers

New Answer

+3

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

+2

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.

+1

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.

+1

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.

+1

Dennis, thanks. I understood.

0

Selam meraba