首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

单纯词反转函数,这么写不知道对不对

2013-07-04 
单词反转函数,这么写不知道对不对#include stdafx.h#include iostreamusing namespace std#include

单词反转函数,这么写不知道对不对



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

#include <string.h>
#include <cstdio>

void swap_str(char * start, char * end)
{
char temp = 0;
while (start < end)
{
temp = * start;
*start++ = *end;
*end-- = temp;
}
}

char * reverse_str(char * str, int len )
{
char * start = str;
char * end = str + len - 1;

swap_str(start,end);

return str;
}


//char * reverse_str(char * start, char * end )
//{
//end -= 2;
//swap_str(start,end);
//return start;
//}

char * reverse_word(char * str)
{
char * word_start = str;
char * word_end = word_start;

while(*word_start)
{
int len = 0;
while (*word_end != '\0' && *word_end++ != ' ' )
{
len ++;
}
reverse_str(word_start, len);
word_start = word_end;
}
return str;
}

int _tmain(int argc, _TCHAR* argv[])
{

char str[] = "please input the word";

reverse_str(str,strlen(str));
cout << str << endl;

reverse_word(str);
cout << str << endl;

return 0;
}


求大神帮改错!!!!或者在空间和效率上提高一点!这样太耗费了!帮帮!!!
[解决办法]
空间效率没法提高了吧,你也没有开辟新空间,是原地交换。
可以牺牲空间来节省时间。比如加一个栈,这样一进一出就反转了。

热点排行