13

文字列を小文字に変換しようとしていて、それを char* として扱い、各インデックスを反復処理しています。問題は、tolower私がオンラインで読んだ関数が実際には char を小文字に変換していないことです: char を入力として取り、整数を返しています。

cout << tolower('T') << endl;

印刷116すべきときにコンソールに出力しますT

文字列を小文字に変換するより良い方法はありますか? 私はオンラインで見回しましたが、ほとんどの情報源は「 char配列を使用して反復する」tolowerと言っていますが、これは私にとってはうまくいかないようです。

だから私の2つの質問は次のとおりです。

  1. tolower呼び出したときに「t」ではなく116を返す関数の何が間違っていますかtolower('T')

  2. tolower個々の文字で使用する以外に、C++ で文字列を小文字に変換するより良い方法はありますか?

4

6 に答える 6

1

下げるとintなのでintを返します。確認#include <ctype>すると、定義が次のとおりであることがわかります。int tolower ( int c );ループを使用して文字列を通過し、すべての文字を小文字に変更できます。例えば

while (str[i]) // going trough string 
{
  c=str[i]; // ging c value of current char in string 
  putchar (tolower(c)); // changing to lower case      
  i++;  //incrementing 
}
于 2015-11-21T23:05:36.107 に答える