2013-04-09 131 views
1
int isPurePalindrome(const char *sentence){ 
int i;  
if (sentence="")  
return 0; 
char *begin; char *end; i=strlen(sentence);//i is now the length of sentence string 
*begin= &sentence(0); 
*end=&sentence[i-1]; 

我正在使用dev C++。我试图初始化指针“开始”指向字符串“句子”中的第一个字符,但它不断给我一个错误,“赋值使指针没有转换指针的整数”。 “*句子”指向用户在主文件中输入的字符串。 ispalindrome是一种写作功能。假设在main中输入的句子是NULL,则返回0。使用指向字符串的指针初始化指向字符串中的字符的指针

+0

基本上你不会能够编译这个code.compiler投诉字符串比较。并删除后代码应编制在'C99'标准 – 2013-04-09 05:01:01

回答

3

有你的代码的几个问题:

if (sentence="") return 0; 

应该

if (strcmp(sentence,"")==0) return 0; 

char *begin; char *end; 

应该

const char *begin; const char *end; 

*begin= &sentence(0); 

应该

begin = &sentence[0]; 

*end=&sentence[i-1]; 

应该

end = &sentence[i-1]; 
+0

也许你还可以提及关于混合声明和身体与标准 – 2013-04-09 05:02:04

+0

@Vaughn Cato非常感谢。有效!!! – user2260097 2013-04-09 17:16:43

0

有一堆代码中的问题,但在导致该错误信息是,当你不需要时,你正在解引用。你想:

begin = &sentence[0]; 
end = &sentence[i-1]; 
0
begin = &sentence[0]; 
end = &sentence[i - 1]; 

这将解决你的问题..

-1

你应该写[]

*begin= &sentence(0); 
insted的的 ()

你应该种姓句子(字符*)之前分配它开始和结束。

*begin = ((char*)sentence)[0]; 

*end = ((char*)sentence)[i -1]; 
+0

施法只隐藏错误而不是修复它 – anatolyg 2013-04-09 06:08:11