您好我试图创建一个功能,让用户知道输入的单词是否是回文(向后拼写相同,例如:皮划艇)。这是我提出的功能,但由于某种原因,该函数总是返回false。
#include <iostream>
#include <cctype>
using namespace std;
bool compare(string str2)
{
int first = 0, mid, last = (str2.size() - 1);
while(first < last)
{
if(first == last)
{
first++;
last--;
}
else return(false);
}
return(true);
}
int main()
{
string pal;
cout <<"Enter your single word palindrome: ";
getline(cin,pal);
if(compare(pal) == true)cout << pal <<" is a palindrome.\n";
else cout << pal <<" is not a palindrome.\n";
return(0);
}
答案 0 :(得分:2)
您实际上并没有进行任何字符比较,只是比较索引first
和last
- 它们不匹配,因此您返回false。
答案 1 :(得分:1)
按照以下代码,如果我们假设 public interface Advapi32 extends Library {
Advapi32 INSTANCE = (Advapi32)Native.loadLibrary("advapi32", Advapi32.class);
boolean GetUserNameA(byte[] name, IntByReference intRef);
}
大于0,则last
为while(first < last)
,后跟true
为if(first == last)
,因此函数返回false
。我猜你可能想要比较字符而不是索引。
false
答案 2 :(得分:0)
if(first == last){} 这是错误。