使用指向字符串的指针初始化指向字符串中字符的指针

时间:2013-04-09 04:47:12

标签: c++

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。

4 个答案:

答案 0 :(得分: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];

答案 1 :(得分:0)

您的代码中存在许多问题,但导致该错误消息的问题是您在不需要时解除引用。你想要:

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

答案 2 :(得分:0)

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

这将解决您的问题..

答案 3 :(得分:-1)

您应该在

中写下[]而不是()
 *begin= &sentence(0); 

在将其分配给开始和结束之前,你应该将句子加入(char *)。

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

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