&引用;预期';字符*';但参数的类型是';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因为我对编程不熟悉,也不是英语母语,所以很难理解解决该问题到底需要什么这是一个问题,即使你觉得它很琐碎。