Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;预期';字符*';但参数的类型是';char'"E;”回文+;颠倒_C_String_Char_Palindrome - Fatal编程技术网

&引用;预期';字符*';但参数的类型是';char'"E;”回文+;颠倒

&引用;预期';字符*';但参数的类型是';char'"E;”回文+;颠倒,c,string,char,palindrome,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--)

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

#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;
}
#包括
#包括
无效反向(字符s[])
{
int c,i,j;

对于(i=0,j=strlen(s)-1;iToy需要更改此值

Palindromcheck(c, *ptr1);
对此

Palindromcheck(c, ptr1);

函数要求指针指向
char
,因为参数是
char g[]
,您正试图只传递
char
值。

玩具需要更改此参数

Palindromcheck(c, *ptr1);
对此

Palindromcheck(c, ptr1);

函数要求指针指向
char
,因为参数是
char g[]
,并且您试图只传递
char
值。

回文检查(c,ptr1);
?该*将其声明为指针,但稍后在其前面加星号表示取消引用。请注意
if(u==g)
将比较指针的位置,而不是数组的内容。同时传入
char[]
不传递长度,只传递起始指针,因此如果您想使用它进行比较,您也需要传递长度……并且您应该
strdup
要反转的字符串。目前,ptr1是c缓冲区的别名,因此,当您在适当的位置反转它时,您也在反转c。您需要取一个co它的py(理想情况下是在之后释放()副本)Palindromcheck的参数2似乎从整数中生成指针,但没有强制转换。编译器需要char*,但该参数的类型为char。编译器消息需要更清晰吗?@Lundin因为我对编程不熟悉,也不是英语母语,所以很难理解解决该问题到底需要什么这是一个问题,即使你觉得它很琐碎。
Palindromcheck(c,ptr1);
?该*声明它为指针,但当你稍后在它前面加星号时,这意味着取消引用。请注意,
if(u==g)
将比较指针的位置,而不是数组的内容。同时传递
char[]
不传递长度,只传递起始指针,因此如果您想使用它进行比较,您也需要传递长度……并且您应该
strdup
要反转的字符串。目前,ptr1是c缓冲区的别名,因此,当您在适当的位置反转它时,您也在反转c。您需要取一个co它的py(理想情况下是在之后释放()副本)Palindromcheck的参数2似乎从整数中生成指针,但没有强制转换。编译器需要char*,但该参数的类型为char。编译器消息需要更清晰吗?@Lundin因为我对编程不熟悉,也不是英语母语,所以很难理解解决该问题到底需要什么这是一个问题,即使你觉得它很琐碎。