2017-01-16 3 views
0

Wenn ich versuche, tolower auf eine Zeichenfolge zu verwenden, anstatt die Buchstaben in Kleinbuchstaben zu schreiben, konvertiert das Programm sie in zufällige Symbole. ist hier mein Code: Þð╚ã║ã╚È╝▄┤Ï┤È▄┤┤Â▄Ich habe Probleme mit tolower() in C++

was falsch ist:

#include <iostream> 
#include <locale> 
using namespace std; 

int main() 
{ 
    string hi= "thTSMSdjNnJlJjnJJKn"; 
    for (int i=0; i<hi.length(); i++) 
    { 
     hi[i]+=tolower(hi[i]); 
     cout << hi[i]; 
    } 
} 

Dies ist der Ausgang? Dies ist nicht der eigentliche Code, den ich verwenden möchte, aber ich habe es nur in ein separates Beispiel geschrieben, so dass es klarer war. Es macht mir auch nichts aus, nach oben zu gehen, aber die Hauptsache ist, dass ich alle Buchstaben in der Zeichenkette als den gleichen Fall erhalte.

+6

hallo [i] + = tolower (hallo [i]); -> hi [i] = tolower (hi [i]); –

+8

'hi [i] + = ??' Sollte als Tippfehler geschlossen werden ... – John3136

+0

Sie nicht '#include ' zuerst, zweite 'hi [i] = tolower (hi [i]);' sollte Arbeit –

Antwort

3

Es ist ein Tippfehler in der for-Schleife:

hi[i] += tolower(hi[i]); 

hi[i] = tolower(hi[i]); 

Auch sein sollte, wird der Code fehlt #include <string>