問題タブ [tolower]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - std::string のインスタンスを小文字に変換する方法
std::string
aを小文字に変換したい。機能は承知しておりますtolower()
。std::string
ただし、過去にこの関数に問題がありましたが、各文字を反復処理する必要があるため、とにかく理想的ではありません。
100% の確率で機能する代替手段はありますか?
c++ - C++ 文字列の tolower 関数
C++文字列を大文字から小文字に変換する組み込み関数はありますか? それを cstring に変換せず、各文字で tolower を使用することが唯一のオプションですか?
事前にどうもありがとうございました。
c++ - C++ - エラー E2285 : 関数 parseInput(fstream &) で 'tolower(char *)' に一致するものが見つかりませんでした
次のコードがあるとします。
コンパイルすると、次のエラーが発生します。
エラー E2285 : 関数 parseInput(fstream &) で 'tolower(char *)' に一致するものが見つかりませんでした
int []ではなくintを返すことはわかっていますが、getlineを使用する代わりに、入力文字を文字ごとに取得する必要があるということですか? ライン全体を低く変換する方法はありますか? みんなの助けを前もってありがとう!
java - C# UTF-32 ToLower
Unicode UTF-32 (int) を小文字に変換する方法を探しています。Java では、次のような方法でうまくいきます。
私は Char.ConvertToUtf32 から UTF-32 を持っていますが、その値を小文字にする方法はないようです。
更新: 文字のストリーム/配列を扱っています。hi サロゲートを探してコード ポイントを見つけました。これは、上記の Java スニピットに多少似ています。String への変換は非効率的です。
c++ - 「transform(s.begin(),s.end(),s.begin(),tolower)」が正常にコンパイルできないのはなぜですか?
コードを考えると:
エラーが発生します:
への呼び出しに一致する関数がありません
transform(__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, <unresolved overloaded function type>)
「未解決のオーバーロードされた関数型」とはどういう意味ですか?
を私が書いた関数に置き換えるtolower
と、エラーが発生しなくなります。
c - tolower を static にする
tolower
「パブリック」スコープではなく 、標準ライブラリ関数を静的にする必要があります。
IAR Embedded Workbench コンパイラを使用して、MISRA C:2004 でコンパイルしています。コンパイラはtolower
インラインとして宣言しています:
コンパイラから次のエラーが表示されます。
これが私の提案する解決策です:
- 複数のモジュールで必要と
tolower
されるように、ダミーの状況で別のモジュールで使用します。 - を使用せずに機能を実装します
tolower
。これは組み込みシステムです。 - デフォルトでは空として定義されている「STATIC」マクロを追加しますが、ヘッダー ファイルがインクルードされる
static
前に定義できます。ctype.h
MISRA リンカ エラーの解決策を探しています。tolower
RS232_Server 翻訳単位だけ関数を staticにしたい(tolower
標準ヘッダー ファイルで static にすると、他の将来のプロジェクトに影響を与える可能性があります)。
編集1:
コンパイラは、ARM プロセッサ用の IAR Embedded Workbench 6.30 です。
ARM7TDMI プロセッサを 32 ビット モード (Thumb モードではない) で使用しています。関数は、デバッグ ポートで使用されます
。tolower
編集2:
_LocaleC_isupper
とのエラーも発生しています_LocaleC_tolower
解決:
- Michael Burr の推奨に従って、ベンダーに問題を通知しました。
- ローカリゼーションの問題のため、ライブラリ ルーチンを書き直さないことにしました。
- gbulmer の提案に従って、main.c ファイルに関数ポインターを実装しました。ただし、IAR が問題を解決した後に削除する必要があるため、これは信じられないほどコメントされます。
c# - ディレクトリを指定してすべてのファイル拡張子を大文字から外すにはどうすればよいですか?
上記を実行すると、ファイル拡張子が小文字に変わると思いました。
ディレクトリにファイルがあります:
AAA_1.jpg
AAA_2.JPG
BBB_1.TIFF
BBB_2.GIF
私はそれをしたい:
AAA_1.jpg
AAA_2.jpg
BBB_1.tiff
BBB_2.gif
どうすればこれを行うことができますか?
c - tolower() 関数の問題
これは私のコード例です:
ただし、convert() 関数は、strlen(a) よりも 1 文字多く変換することもあります (ランダムな文字です)。たとえば、次の出力があります。
どうすれば修正できますか?
c - tolower()関数がC99で機能しない
ハーバードのCS50アプライアンスを使用しており、文字を小文字にしようとしています。関数を使おうとしていtolower()
ますが、使おうとするとメッセージが表示されますimplicit declaration of function 'tolower' is invalid in C99
。なぜ私がこのメッセージを受け取るのか、誰もが詳しく説明します。stdio.h
と同様に含めましたstring.h
。