0
find an error:
this code swaps last and first letter of a word and adds "ay" at the end #include <iostream> #include <string> int main() { std::string input = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"; int last = 0, first = 0; //input to declare enough space char r; std::getline(std::cin, input); for (int i = 0; i <= input.length(); i++) { if (input[i] == '\0') { last = i - 1; break; } } r = input[last]; input[first] = input[last]; //swaps first and last letter input[last] = r; input[last + 1] = 'a'; input[last + 2] = 'y'; //adds an ay at the end std::cout << input; }
3 Answers
0
Instead loop, you can simply write like this
last = input.length()-1;
And 
	r = input[last]; //last storing 
	input[first] = input[last]; //again last storing in first, now last the first value.. 
	input[last] = r; //last = last.
Instead you need
	r = input[last];
	input[last] = input[first];
	input[first] = r;
0
thank you, now the code swaps last and first char, but adding "ay" still doesnt work
nevermind, figured it out, changed it to input = input + "ay";
0
Yes. Simply it works.. 
input+="ay";
Adding at index positions will not increasing string length..
Or 
You can do like this
input += (input[last + 1] = 'a');
input += (input[last + 2] = 'y');




