我在程序中使用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;
。如果您知道问题所在,请提供帮助!
答案 0 :(得分:4)
因为您要将char与字符串文字进行比较。尝试
if ( endch == '!' )
由于
"!" // <--- is a string literal.
'!' // <--- it is a character.
答案 1 :(得分:3)
endch
是一个字母。同时"!"
是一个char数组。因此==
不适用。
使用'!'
代替"!"
。
答案 2 :(得分:1)
你得到一个角色endch
。因此,与字符文字进行比较,而不是字符串文字。
if ( endch == '!' )