这个题目当时看过笔试一百题,不过是扫了一眼,没细看,居然出现了。
真写起来,还确实会有各种问题,答完卷后回来测试,果然有问题。
这里再补上修改过的,虽然 没了结果。
#include<iostream>
using namespace std;
bool Reverse(char *start,char *end)
{
if ((!start)||(!end))
{
return false;
}
else
{
while(start<end)
{
char temp;
temp=*start;
*start=*end;
*end=temp;
start++;
end--;
};
return true;
}
}
int main()
{
char str[255];
gets(str);
cout<<str<<endl;
char *ps,*pe,*p,*p_father;
ps=str;
p=str;
while ((*p)!='\0')
{
p_father=p;
p++;
}
pe=p_father;
Reverse(ps,pe);
cout<<str<<endl;
p=str;
while(*p!='\0')//果然是这一段的问题,推翻重写了一遍。
{
while (*p==' ')
{
p++;
}
ps=p;
while ((*p!=' ')&&(*p!='\0'))
{
p++;
}
char *q=p;
pe=--q;
Reverse(ps,pe);
}
cout<<str<<endl;
return 0;
}