P
padreigh schrieb:
std::string start = "AABBCCDDEE";
std::string erg;
for (int i=0;i<start.size();i++)
if (i%2==0) erg.insert(erg.size()/2,start[i]); else erg.append(start[i]);
Aufgerollt da iss_doch_einfach meinte man sollte was verboser sein :
std::string start = "AABBCCDDEE";
std::string erg = "";
// Schleife aufgerollt:
// for (int i=0;i<start.size();i++)
// i == 0, 0 % 2 == 0, erg.size() == 0
erg.insert(erg.size()/2,start[0]); // erg.insert(0,'A'); --> erg = "A";
// i == 1, 1 % 2 == 1
erg.append(start[1]); // erg.append('A'); --> erg = "AA";
// i == 2, 2 % 2 == 0, erg.size() == 2
erg.insert(erg.size()/2,start[2]); // erg.insert(1,'B'); --> erg = "ABA";
// i == 3, 3 % 2 == 1
erg.append(start[3]); // erg.append('B'); --> erg = "ABAB";
// i == 4, 4 % 2 == 0, erg.size() == 4
erg.insert(erg.size()/2,start[4]); // erg.insert(2,'C'); --> erg = "ABCAB";
// i == 5, 5 % 2 == 1
erg.append(start[5]); // erg.append('C'); --> erg = "ABCABC";
// i == 6, 6 % 2 == 0, erg.size() == 6
erg.insert(erg.size()/2,start[6]); // erg.insert(3,'D'); --> erg = "ABCDAB";
// i == 7, 7 % 2 == 1
erg.append(start[7]); // erg.append('D'); --> erg = "ABCDABCD";
// i == 8, 8 % 2 == 0, erg.size() == 8
erg.insert(erg.size()/2,start[8]); // erg.insert(4,'E'); --> erg = "ABCDEABCD";
// i == 9, 9 % 2 == 1
erg.append(start[9]); // erg.append('e'); --> erg = "ABCDEABCDE";
// i == 10, i nicht < start.size() ... feddich