ここに問題があります。私のプログラムは大文字を小文字に変更しません。なぜ私はそれを理解できないのですか?Isupper/tolowerが機能しない
#include <iostream>
#include <ctype.h>
using namespace std;
int main(){
string str="hEhEhehe";
for(int i=0;i<str.size();i++){
if(isupper(str.at(i)))
tolower(str.at(i));
}
cout << str;
return 0;
}
'tolower'の戻り値を見てください。 –
文字を変更しないので、小文字の文字を返します。文字は不変です。それは必然的に新しいキャラクターを返す必要があります。 – Carcigenicate
Btw。あなたは、その文字を値で渡しているという事実に気付くことができるので、ポインタで渡すことができなければ関数で変更することはできません。 –