Problem z wyświetleniem zmiennej typu 'std::string'
Ostatnio zmodyfikowano 2010-08-31 19:39
robaczek122 Temat założony przez niniejszego użytkownika |
Problem z wyświetleniem zmiennej typu 'std::string' » 2010-08-31 19:18:38 Dlaczego nie da się wyświetlić stringa "dwa" w taki sam sposób jak to zrobiłem ze stringiem "jeden"? #include <iostream> #include <conio.h> #include <fstream> using namespace std; string jeden, dwa; int main() { jeden = "ABCDEF"; cout << jeden << endl; dwa[ 0 ] = jeden[ 2 ]; dwa[ 1 ] = jeden[ 5 ]; dwa[ 2 ] = 'NULL'; cout << dwa << endl; getch(); return( 0 ); } |
|
ison |
» 2010-08-31 19:24:21 string działa podobnie jak wektor (jeśli nie wiesz co to jest warto się zapoznać) to tak jakbyś się chciał odwołać do nieistniejącej komórki. Plusy tego są takie że zajmujesz tylko tyle pamięci ile potrzeba nie zakładając z góry jak długi może być string poprawiony kod: #include <iostream> #include <string> #include <conio.h> #include <fstream> using namespace std; string jeden, dwa; int main() { jeden = "ABCDEF"; cout << jeden << endl; dwa.resize( 2 ); dwa[ 0 ] = jeden[ 2 ]; dwa[ 1 ] = jeden[ 5 ]; cout << dwa << endl; getch(); return( 0 ); }
|
|
robaczek122 Temat założony przez niniejszego użytkownika |
» 2010-08-31 19:27:29 Czyli muszę znać długość tego stringu "dwa" zanim zacznę do niego dopisywać kolejne literki w taki sposób? |
|
ison |
» 2010-08-31 19:36:22 nie, operator += automatycznie powiększa string o 1 pole #include <iostream> #include <string> #include <conio.h> #include <fstream> using namespace std; string jeden, dwa; int main() { jeden = "ABCDEF"; cout << jeden << endl; dwa += jeden[ 2 ]; dwa += jeden[ 5 ]; cout << dwa << endl; getch(); return( 0 ); }
|
|
robaczek122 Temat założony przez niniejszego użytkownika |
» 2010-08-31 19:39:29 O właśnie takie rozwiązanie mi chodziło.
Dzięki wielkie. |
|
« 1 » |