まずは、あなたが提供したいと思っているすべてのサポートに感謝します。私は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'をポインタに置くとポインタのサイズが決まります。デバッガの迅速なステップスルーにより、そのことが非常に迅速に伝えられました。デバッガを使用してコードを1行ずつ進んで、このようなことを調べる方法を学びましょう。 –