但在编译中发生错误,试了很久,不知道具体原因是什么,求大家帮帮忙。
void reverse(char *pBegin, char *pEnd){
if(pBegin == NULL || pEnd == NULL)
return;
while(pBegin < pEnd){
char temp = *pBegin;
*pBegin = *pEnd; //编译到这地方失败,0xC0000005: 写入位置 0x0087DCAC 时发生访问冲突。
*pEnd = temp;
pBegin++;
pEnd--;
}
}
char* reverseSentence(char *pData){
if(pData == NULL)
return NULL;;
char *pBegin = pData;
char *pEnd = pData;
while(*pEnd!='\0') pEnd++;
pEnd--;
//旋转句子
reverse(pBegin,pEnd);
//旋转单词
pBegin = pData;
pEnd = pData;
while(*pBegin !='\0'){
if(*pBegin == ' '){
pBegin++;
pEnd++;
}else if(*pEnd == '\0' || *pEnd == ' '){
reverse(pBegin,--pEnd);
pBegin = ++pEnd;
}else{
pEnd++;
}
}
return pData;
}