#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
void reverse_string(char *dest,const char *src)
{
char *temp=src-1;
char *temp2=dest;
assert(dest&&src);
while(*src++)
;
src-=1;
while(src!=temp)
*dest++=*src--;
dest=temp2;
}
void main()
{
const char *src="abcdefg";
char *dest=NULL;
dest=(char *)malloc(20);
reverse_string(dest,src);
printf("%s\n",dest);
}
得到的结果仍是原结果,没有得到反转。
#include <stdlib.h>
#include <assert.h>
void reverse_string(char *dest,const char *src)
{
char *temp=src-1;
char *temp2=dest;
assert(dest&&src);
while(*src++)
;
src-=1;
while(src!=temp)
*dest++=*src--;
dest=temp2;
}
void main()
{
const char *src="abcdefg";
char *dest=NULL;
dest=(char *)malloc(20);
reverse_string(dest,src);
printf("%s\n",dest);
}
得到的结果仍是原结果,没有得到反转。
解决方案 »
- 关于writeFile写命名管道的问题
- RS232串口通信。PC读取的数据是pdata还是&written
- 如何避免数据库连接失败时程序退出?
- 怎样用软件仿真玩具动作?
- 关于局域网象棋游戏的编程,进则有分
- 我记得读书的时候是说中 国面积为全世界第三大.... 但是现在???
- 关于重载操作符号"[]"、"="?
- 怎么实现用BASE64编解码?谢谢
- 如何从VC中倒出一个可执行文件
- 》》》快来抢100分:如何改变属性页中tab标签的颜色,可以给它设置一个背景小图片吗?注意不是Page的颜色,仅是那个tab标签的颜色。答案可行立刻给分!
- 为什么运算结果不一样呢?望高人指点
- 串口操作的timeout的设置问题!!
;
//这句什么意思啊? while(*src++); //while什么都不做?
while(*src++);
你的原来意思,是把指针移动到字符串末尾一个0处,
但是while(*src++); 会移动到末尾0的下一个字节处,因为src++了一次,
所以,你只要把接下来的,
src-=1; //改为src-=2;
程序就能正确了。