“预期为'char *',但参数为'char'类型”-palindrom +反向

时间:2018-11-29 13:17:51

标签: c string char palindrome

现在,此程序成功反转了键盘输入的单词。但是我想在反转指针之前先“保存”指针中的单词,以便可以比较反转的单词和“原始的”单词,并检查它们是否是回文。我还没有很多经验,可能有比我所知道的更多的错误,但是我找不到解决方法。

#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]

在函数调用中。

感谢任何帮助:)

1 个答案:

答案 0 :(得分:4)

玩具需要更改

Palindromcheck(c, *ptr1);

对此

Palindromcheck(c, ptr1);

函数期望指向char的指针,因为参数为char g[],而您正试图仅传递char值。