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

我正在使用开发 C++。我试图将指针“begin”初始化为指向字符串“sentence”中的第一个字符,但它一直给我一个错误,即“赋值从指针生成整数而不进行强制转换”。“*sentence”指向用户在main中输入的字符串。ispalindrome 是我正在编写的函数。如果在 main 中输入的句子是 NULL,它假设返回 0。

4

4 回答 4

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];
于 2013-04-09T04:51:15.067 回答
0
begin = &sentence[0];
end = &sentence[i - 1];

这将解决你的问题..

于 2013-04-09T05:01:18.087 回答
0

您的代码中有很多问题,但导致该错误消息的一个问题是您在不需要时取消引用。你要:

begin = &sentence[0];
end = &sentence[i-1];
于 2013-04-09T04:51:16.963 回答
-1

你应该写[]insted of ()in

 *begin= &sentence(0); 

在将其分配给开始和结束之前,您应该将句子转换为 (char*)。

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

*end =  ((char*)sentence)[i -1];
于 2013-04-09T05:17:32.137 回答