[英]Check palindrome input if string or int
大家好,我想檢查輸入(char 或 int)polindrome 與否,但我不能這樣做。 你能幫助我嗎? 我有錯誤信息
"invalid conversation char to char*"
我認為這是一個簡單的問題,但我已經無法解決。 謝謝您的幫助。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
int main()
{
int r,sum=0,temp;
char a;
char *b = &a;
printf("Enter a string or number\n");
scanf("%c", &a);
if ( isalpha( a ) )
{
b = a;
strrev(b);
if (strcmp(a, b) == 0)
printf("The string is a palindrome.\n");
else
printf("The string isn't a palindrome.\n");
}
else if ( isdigit( a ) )
{
temp=a;
while(a>0)
{
r=a%10;
sum=(sum*10)+r;
a=a/10;
}
if(temp==sum)
printf("palindrome number ");
else
printf("not palindrome");
}
return 0;
}
既然您提到您是一名學生並想學習 C,我不打算編寫代碼,但會嘗試為您指明正確的方向。
要解決這個問題,您需要:
首先,要獲取一個字符串,您的代碼中有:
char a;
scanf("%c", &a);
提示:這只會給你一個角色。 要獲取字符串,首先需要分配一個數組而不是一個字符,然后使用帶有不同參數的 scanf,而不是 %c。
這部分任務完全獨立於第二部分。 我建議首先確保這部分工作,然后再繼續。 您可以通過獲取一個字符串然后立即打印它來做到這一點。 通過這種方式,您可以看到您實際處理的內容。
一旦你有了你的字符串,繼續分析它。 您可以將其還原,然后與原始文件進行比較(這就是您的代碼所建議的),但這樣做可能更容易:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.