Hallo, Ich habe ein Problem mit dem Datentyp string in C++. Ich möchte in einem String, den ich eingelesen habe alle Kleinbuchstaben durch Großbuchstaben ersetzten. Allerdings bekomme ich vom Compiler die Fehlermeldung:"cannot convert std::string to char" using namespace std; cahr c[100]; char d[100]; string ar[10] = {"test"}; cout << ar <<endl; for(int i=0; i<4; i++) { c[i] = ar[i]; d[i] = toupper(c[i]); ar[i] = d[i]; } cout <<ar <<endl; Warum ist es nicht möglich ein einzelens Zeichen einer string-variablen einer char Variablen zuzuweisen? Und wie mache ich das richtig? Ich habe nichts verständliches im Internet gefunden, allerdings scheint das oben geschriebene bei manchen zu funktionieren.
Hallo, std::string ist ein Container... string a = "test"; wäre richtig, was Du definiert hast, ist ein Array von string, das erste Element hast Du dann mit "test" initialisiert, alle anderen sind leer. Schau mal was die Methoden data() und c_str() machen... Weiter wäre char c = a[3]; erlaubt. Es gibt noch mehr Möglichkeiten, auf die string-Variable zuzugreifen. http://www.cplusplus.com/reference/string/string/ Viel Erfolg Hermann-Josef
Oder gleich den C++-Weg gehen, z.B.:
1 | #include <iostream> |
2 | #include <string> |
3 | #include <algorithm> |
4 | #include <cctype> |
5 | |
6 | |
7 | int main( int nargs, char **args ) |
8 | {
|
9 | std::string ar( "Test" ); |
10 | std::transform( ar.begin(), ar.end(), ar.begin(), std::toupper ); |
11 | std::cout << ar << std::endl; |
12 | }
|
Und bitte: - nicht dauernd using namespace std nehmen - die wirklichen Quelltexte einfügen (garniert mit
1 | [c]...[/c] |
) und nicht irgendwas mehr oder weniger Ähnliches abgetippt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.