2017-11-18 5 views
0

私のプログラムは、文字列ライブラリとC++のスティングオブジェクトだけを使用しているpalindrome checker関数です。ユーザーが入力した文字列が回文かどうかを調べるには、文字列全体を小文字に変換して、文字列とその逆が等しいかどうかを確認する必要があります。私は解決策を探してみましたが、私は異なるライブラリを使用して答えを見つけ、新しい機能を作成しました。これはこれまでのコードです。 char型の値がunsigned char型として、したがって、キャストを表現できない場合は、この一時的に文字列全体を小文字に変換して空白を削除しようとしています

std::string inputString = "WhatEver", cleanString; 
for (char & c : inputString) 
    if (c != ' ') 
     cleanString += std::tolower(static_cast<unsigned char>(c)); 

のstd :: TOLOWERのような何かについて定義されていませんどのように

#include <iostream> 
#include <string> 

using namespace std; 

string checkPalin(); 

int main() 
{ 
    string result = checkPalin(); 

    cout << "The palindromes are: " << result; 
} 

string checkPalin() 
{ 
    int stringNum, time = 0; 
    string list; 
    string str1; 
    string reverse; 
    cout << "How many strings? " << endl; 
    cin >> stringNum; 
    cout << "Enter the strings: " << endl; 

    do 
    { 
     getline(cin, str1); 


     int size = str1.length(); 
     for (int i = size - 1; i >= 0; i--) 
      reverse += str1[i]; 

     if ((str1.compare(reverse)) == 0) 
     { 
      list += str1; 
     } 

     time++; 
    } while (time <= stringNum); 

    return list; 
} 
+0

[こちら](https://stackoverflow.com/questions/20326356/how-to-remove-all-the-occurrences-of-a-char-in-c-string)をチェックしてください。そして 'std :: reverse'がありますので、あなたはそれを書く必要はありません。私はあなたが望むすべての 'std'を使うことができます – lakeweb

+2

"私は答えを見つけました...新しい機能を創造しました "とはどういう意味ですか?あなたは関数を書くことを想定していませんか? – PhotometricStereo

+0

これは宿題に関する質問か、誰も本当に気にしていない愚かなオンラインクイズサイトの質問ですか? –

答えて

関連する問題