2017-03-05 3 views
0

내 프로그램에 C++을 사용하고 있으며 C++에 능숙합니다. 나는 Get the last element of a std::string을 읽었지만 아무도 도왔습니다. 내 코드는 다음과 같습니다 C++에서 문자열의 마지막 문자를 얻는 방법

#include <iostream> 
    #include <string> 

    using namespace std; 

    int main() 
    { 
     string str = "Hello World!"; 
     char endch = str.back(); 
     if (endch == "!") // Here's the error 
     { 
      cout << "Found!" << endl; 
     } else 
     { 
      ; // ; alone does nothing 
     } 
    } 

C 오류입니다 : 사용자 \ \ ... \ 바탕 화면 \의 MAIN.CPP | 30 | 경고 :없는 동작 문자열 리터럴 결과와 비교 [-Waddress] |

C : \ 사용자 \ ... \ 바탕 화면 \의 MAIN.CPP는 | 30 | 오류 : ISO C++는 포인터와 정수 [-fpermissive]

나는 문제가 무엇인지 모르겠지만 사이의 비교를 금지 나는 그것이 str.back;이라고 생각하고 있습니다. 문제가 무엇인지 알고 싶다면 도와주세요!

답변

4

char을 문자열 리터럴과 비교하기 때문에. 당신은 endch에 문자를 얻을

if (endch == '!') 

"!" // <--- is a string literal. 
'!' // <--- it is a character. 
1

때문에보십시오. 문자열 리터럴이 아닌 문자 리터럴과 비교하십시오.

if (endch == '!') 
3

endch은 char입니다. 한편 "!"은 문자 배열입니다. 따라서 ==은 적용되지 않습니다.

"!" 대신 '!'을 사용하십시오.

관련 문제