aFakeProgramer 2018-03-29 09:02 采纳率: 0%
浏览 642
已结题

这个翻转句子中单词的程序哪里错了

#include "stdafx.h"
#include "iostream"
#include
#include
#include
using namespace std;

void reverse_word(char pBegin,char *pEnd);
char
reverse_word_in_sentence(char *pData);

int _tmain(int argc, _TCHAR* sargv[])
{ char str[]="I love you!";
char *st=reverse_word_in_sentence(str);
cout<<str<<endl;
system("pause");
}

void reverse_word(char *pBegin,char *pEnd)
{
if(pBegin == nullptr || pEnd == nullptr)
return;
//int n=pEnd-pBegin;
//int i,j;
//for(i=0,j=n;i<j;i++,j--)

while(pBegin<pEnd)
{
    char temp = *pBegin;
    *pBegin= *pEnd;
    *pEnd=temp;
    pBegin++;
    pEnd--;

}

}
char* reverse_word_in_sentence(char *pData)
{
if(pData == nullptr)
return nullptr;
char *pBegin = pData;
char *pEnd= pData;
while(*pEnd != '\0')
{
pEnd++;
}
pEnd--;
//翻转整个句子
reverse_word(pBegin,pEnd);
//翻转句子中的每个单词
pBegin = pEnd = pData;
while(*pBegin!='\0')
{
if(*pBegin == ' ')
{
pBegin++;
pEnd++;
continue;
}

    //翻转单词
    else if(*pEnd == ' ' || *pEnd == '\0')
    {
        reverse_word(pBegin,--pEnd);
        //begin指针设置为下一个单词位置
        pBegin=pEnd++;
    }
    else
    {
        pEnd++;
    }

}

}

  • 写回答

2条回答 默认 最新

  • 杉杉唯落晖 2018-03-29 09:57
    关注

    自己写点跟踪信息或者gdb调试下

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)