TA的每日心情 | 奋斗 2018-2-28 18:04 |
---|
签到天数: 40 天 连续签到: 1 天 [LV.5]测试团长
|
二、
完成函数void reverse_str(unsigned char *str);
功能:将输入字符串str转换成各字节顺序从尾到头排列的新字符串。
输入:str,要被翻转处理的字符串,以0结尾。
输出:str,翻转后的结果,以0结尾。
要求:使用最小的内存空间(数据部分)
这个应该是反转单词的算法吧。参考程序是这样的(CPP)
void reverse_str(char * begin, char * end)//反转字符串
{
int len = end - begin;
char c;
for(int i = 0; i < len/2; ++i)
{
c = *(begin + i);
*(i + begin) = *(end - i - 1);
*(end - i - 1) = c;
}
}
void reverse_word(char *str)
{
reverse_str(str, str + strlen(str));
char * p = str;
char * q = p;
while( *p != '\0')
{
++p;
if( *p == ' ') //再把空格之间的单词逆反转过来
{
reverse_str(q, p);
++p;
q = p;
}
}
}
void main()
{
char str[] = "I like Yahoo very much";
reverse_word(str);
cout<<str<<endl;
}
好像还有其他的写法,具体参考该地址:
http://blog.csdn.net/sworder_001/archive/2006/11/28/1418003.aspx |
|