现在,此程序成功反转了键盘输入的单词。但是我想在反转指针之前先“保存”指针中的单词,以便可以比较反转的单词和“原始的”单词,并检查它们是否是回文。我还没有很多经验,可能有比我所知道的更多的错误,但是我找不到解决方法。
#include <stdio.h>
#include <string.h>
void reverse(char s[])
{
int c,i,j;
for(i=0, j=strlen(s)-1; i<j; i++, j--)
{
c = s[i];
s[i] = s[j];
s[j] = c;
}
}
void Palindromcheck(char u[], char g[])
{
if(u == g)
{
printf("Word \"%s\" is a palindrom\n", g);
}
else
{
printf("Word \"%s\" is not a Palindrom\n", g);
}
}
int main()
{
char c[30];
printf("Please enter a value \n");
scanf("%s", c);
char *ptr1 = c;
printf("String: %s\n", c);
reverse(c);
printf("%s\n", c);
Palindromcheck(c, *ptr1);
return 0;
}
我收到两个警告:
预期为'char *',但参数的类型为'char'
位于函数palindromcheck
本身,例如:
传递'palindromcheck'的参数2使指针从整数开始而没有 投射[-Wint-conversion]
在函数调用中。
感谢任何帮助:)
答案 0 :(得分:4)
玩具需要更改
Palindromcheck(c, *ptr1);
对此
Palindromcheck(c, ptr1);
函数期望指向char
的指针,因为参数为char g[]
,而您正试图仅传递char
值。