如何在c ++

时间:2017-03-05 01:36:32

标签: c++ string char

我在程序中使用c ++,而且我非常擅长c ++。我看过Get the last element of a std::string,但没有一个帮助过。我的代码是:

    #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:\ Users \ ... \ Desktop \ main.cpp | 30 |警告:与字符串文字比较导致未指定的行为[-Waddress] |

C:\ Users \ ... \ Desktop \ main.cpp | 30 | error:ISO C ++禁止指针和整数之间的比较[-fpermissive]

我不确定问题是什么,但我猜测它是str.back;。如果您知道问题所在,请提供帮助!

3 个答案:

答案 0 :(得分:4)

因为您要将char与字符串文字进行比较。尝试

if ( endch == '!' )

由于

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

答案 1 :(得分:3)

endch是一个字母。同时"!"是一个char数组。因此==不适用。

使用'!'代替"!"

答案 2 :(得分:1)

你得到一个角色endch。因此,与字符文字进行比较,而不是字符串文字。

if ( endch == '!' )