首先,我非常感谢您愿意提供的任何帮助。我是C++的新手,并且一直在浏览本网站以及解决我的问题的其他资源。确定用户输入是否使用C++回文
此外,这确实是家庭作业的一部分。然而,这个任务已经被打开(令人不安的是,没有得到这个代码的工作)。能够解释我的特定代码中的问题以及如何解决我当前的代码,而不是用刚刚重写的代码以不同的方式解决问题,这将是非常好的。我当然在这个美妙的网站上找到了很多方法来解决这个问题!
我没有得到我的代码错误,但反转输出不显示反转字符数组。这导致我的小程序,在这里总是显示“您的字符串不是回文!:(”无论输入是什么。
#include <iostream>
#include <string>
using namespace std;
int isPalindrome(char *input, char *input2);
char reverseString(char *input);
int main()
{
char input[50];
char input2[50];
cout << "Please enter a string of characters no larger than 50." << endl;
cin.getline(input, 50);
reverseString(input);
cout << "The reversed string is " << input2 << endl;
int result;
result = isPalindrome(input, input2);
if(result == 0)
cout << "Your string is a palindrome!" << endl;
else
cout << "Your string is not a palindrome! :(" << endl;
return 0;
}
int isPalindrome(char* first, char* second)
{
if (*first == *second)
return 0;
else
return 1;
}
char reverseString(char* input2)
{
int size = sizeof(input2);
for (int i = 0; i < (size/2); i ++)
swap(input2[i], input2[size-i-1]);
return *input2;
}
我再次感谢所有帮助您可以提供!我道歉,如果这是一个。简单的错误,我俯瞰,应该已经能够在其他地方找到
您在使用调试器逐步执行代码时观察到了什么? – user0042
使用'* first == * second',将'first'的第一个字符与'second'的第一个字符进行比较。该表达式等于'first [0] == second [0]'。 –
此外,在指针上执行'sizeof'会给你*指针*的大小,而不是它指向的大小。调试器中的快速切换会很快告诉你。请学习如何使用调试器逐行浏览您的代码以找出类似的事情。 –