[解決済み] C++の文字列を大文字に変換する方法
質問
C++の文字列を完全な大文字に変換する必要があります。しばらく探していたところ、1つの方法を見つけました。
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
string input;
cin >> input;
transform(input.begin(), input.end(), input.begin(), toupper);
cout << input;
return 0;
}
残念ながらこれはうまくいかず、次のようなエラーメッセージが表示されました。
transform(std::basic_string::iterator, std::basic_string::iterator, std::basic_string::iterator)' の呼び出しに対応する関数がない。
他の方法も試しましたが、うまくいきませんでした。これが一番動作に近かったです。
つまり、私が聞きたいのは、何が間違っているのかということです。多分、私の構文が悪いか、何かを含める必要があるのでしょう。私はよくわかりません。
ほとんどの情報をここで手に入れました。 http://www.cplusplus.com/forum/beginner/75634/ (最後の2つの記事)
解決方法は?
の前にダブルコロンが必要です。
toupper
:
transform(input.begin(), input.end(), input.begin(), ::toupper);
説明します。
2つの異なる
toupper
関数を使用します。
-
toupper
をグローバル名前空間で使用します (アクセスは::toupper
)であり、これはC言語からきている。 -
toupper
の中にstd
名前空間(アクセスはstd::toupper
) は、複数のオーバーロードを持つため、名前だけでは単純に参照できません。参照するためには、明示的に特定の関数シグネチャにキャストする必要がありますが、関数ポインタを取得するコードは醜く見えます。static_cast<int (*)(int)>(&std::toupper)
あなたが
using namespace std
と書くと
toupper
が1.を隠し、名前解決のルールに従って選択されます。
関連
-
[解決済み】VC++の致命的なエラーLNK1168:書き込みのためにfilename.exeを開くことができません。
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み] Pythonで文字列を小文字にするには?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テスト
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み】文字列関数で'char const*'のインスタンスを投げた後に呼び出されるterminate [閉店].
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み] 警告:暗黙の定数変換でのオーバーフロー
-
[解決済み] 配列のベクトルを扱う正しい方法
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない
-
[解決済み】C++で文字列を大文字に変換する方法