2017-11-18 8 views
0

그래서 내 프로그램은 문자열 라이브러리 및 C++ 스팅 개체 만 사용하는 palindrome checker 함수입니다. 사용자가 입력 한 문자열이 palindrome인지 확인하려면 전체 문자열을 소문자로 변환하고 문자열과 그 역이 동일한 지 확인하기 위해 공백을 제거해야합니다. 솔루션을 찾기 위해 노력했지만 다른 라이브러리를 사용하고 새로운 기능을 생성하는 경우에만 답변을 찾았습니다. 이것은 내가 지금까지 가지고있는 코드이다. 숯불 값이 부호없는 문자, 따라서 캐스트를 표현할 수없는 경우이임시적으로 전체 문자열을 소문자로 바꾸고 공백을 제거하려고 시도합니다.

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

표준 : 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

[This] (https://stackoverflow.com/questions/20326356/how-to-remove-all-the-occurrences-of-a-char-in-c-string) 체크하십시오. 그리고'std :: reverse'가 있으므로 쓸 필요가 없습니다. 나는 당신이 원하는 모든'std'를 사용할 수 있다고 생각합니다. – lakeweb

+2

"나는 새로운 기능을 만드는 것만으로 답변을 찾았습니다"라는 의미는 무엇입니까? 함수를 작성하지 않으시겠습니까? – PhotometricStereo

+0

이것은 숙제에 관한 질문입니까, 어리석은 온라인 퀴즈 사이트의 질문입니까? 아무도 신경 쓰지 않는 질문입니까? –

답변

관련 문제