String 回文程序中的特定字符无效
这是我的密码。那些不“起作用”的字符列表,如果围绕cin继续说它们是回文,仍然说它们是正确的。不起作用的字符列表包括: 单引号、双引号、逗号、句点、正斜杠、反斜杠、破折号、感叹号、@symbols、#symbols、$symbols、%symbols、^symbols、&symbols、*符号(星号)、等于符号、+symbolString 回文程序中的特定字符无效,string,palindrome,strcmp,String,Palindrome,Strcmp,这是我的密码。那些不“起作用”的字符列表,如果围绕cin继续说它们是回文,仍然说它们是正确的。不起作用的字符列表包括: 单引号、双引号、逗号、句点、正斜杠、反斜杠、破折号、感叹号、@symbols、#symbols、$symbols、%symbols、^symbols、&symbols、*符号(星号)、等于符号、+symbol int main() { int k = 1; int i; int length, halflength; int yesno = 1; char string [81
int main()
{
int k = 1;
int i;
int length, halflength;
int yesno = 1;
char string [81];
char end[81] = "END";
while (k = 1)
{
cout << "Please enter a string of characters. " << endl;
cout << "Enter \"END\" in all caps to exit the program." << endl;
cin.getline(string, 81);
if (strcmp(string, "END") == 0)
{
return 0;
}
length = strlen(string);
halflength = length / 2;
for (i = 0; i < halflength; i++)
{
if (string[i] != string[length - i - 1]) // comparing
yesno = 0;
break;
}
if (yesno) {
cout << "You have successfully entered a palindrome." << endl;
}
else
{
cout << "You have not entered a palindrome." << endl;
return main();
}
}
}
intmain()
{
int k=1;
int i;
整数长度,半长度;
int-yesno=1;
字符串[81];
字符结束[81]=“结束”;
while(k=1)
{
你的程序会说,“你已经成功地输入了回文。”对于mlaylam
问题在于break语句没有放在正确的位置
块应该用大括号括起来,否则(正如您所做的),在检查第一个字符和最后一个字符后,for循环将中断,从而给出错误的结果
if (string[i] != string[length - i - 1]){ // comparing
yesno = 0;
break;
}