// stringt2.cpp - testataan std:n string-luokkaa #include #include #include // vain printf-testejä varten #define T(s) cout << #s" = |" << s << "|\n" /* T(s3) => s3 = |kissa| */ int main(void) { try { string s1("Kissa"),s2("istuu"),s3,vert; if ( s1 < s2 ) vert = " < " ; else vert = " >= "; int eq = s1.compare(s2); cout << s1 << vert << s2 << " : "<< eq << '\n';// => Kissa < istuu : -30 s3 = s1 + " " + s2; T(s3); // => |Kissa istuu| s3 += " puussa"; T(s3); // => |Kissa istuu puussa| cout << "Anna jono>"; cin >> s3; // Jos kirjoitetaan Aku Ankka T(s3); // tulostuu nyt Aku ja loput jää! cout << "Anna jono>"; getline(cin,s3,'\n');// Jos kirjoitetaan Aku Ankka T(s3); // tulostuu nyt Aku Ankka char c = s1[2]; T(c); // => |s| int len = s1.length(); T(len);// => |5| s3 = 'A'; T(s3); // => |A| s3 = "0123456"; s3.append("ABCDEF",2,2); T(s3); // => |0123456CD| int paikka = s3.find("34"); T(paikka); // => |3| s2 = s3.substr(2,3); T(s2); // => |234| s3.replace(5,3,"ABCDEF"); T(s3); // => |01234ABCDEFD| s3.remove(5,6); T(s3); // => |01234D| s3.insert(5,"56C"); T(s3); // => |0123456CD| s3[2] = 'C'; T(s3); // => |01C3456CD| s2 = s3.substr(2,3); T(s2); // => |C34| printf("s2 = |%s|\n",s2.c_str() ); // => |C34| char s4[10]; strcpy(s4,s2.c_str()); T(s4); // => |C34| s3.copy(s4,2); T(s4); // => |014| s1 = " Kissa istuu "; // Seuraavat toimivat BC:n cstrinh.h:ssa olevassa string-luokassa // s2 = s3("C.*5"); T(s2); // => |C345| C, mitä tahansa, 5 // s3 = s1.strip(s1.Both,' '); T(s3); // => |Kissa istuu| // s1.to_upper(); T(s1); // => | KISSA ISTUU | c = s2[12]; T(c); // Tulee throw(out_of_range) } catch ( out_of_range ) { cout << "Liian iso indeksi\n"; } return 0; }