"ожидается" char * ", но аргумент имеет тип" char "" - palindrom + reverse - PullRequest
0 голосов
/ 29 ноября 2018

В данный момент эта программа успешно переворачивает слово, введенное с клавиатуры.Но я хочу «сохранить» слово в указателе, прежде чем перевернуть его, чтобы я мог сравнить оба, перевернутое и «оригинальное», и проверить, являются ли они палиндромами.У меня пока нет большого опыта, и может быть больше ошибок, чем я знаю, но я не могу найти решение.

#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, например:

передача аргумента 2 из 'palindromcheck'делает указатель из целого числа без приведения [-Wint-преобразование]

при вызове функции.

Оцените любую помощь:)

1 Ответ

0 голосов
/ 29 ноября 2018

Игрушка должна изменить это

Palindromcheck(c, *ptr1);

на это

Palindromcheck(c, ptr1);

Функция ожидает указатель на char, так как параметр равен char g[], и вы пытаетесь передать толькоchar значение.

...