char *strrev(char *str)
{
if(str==NULL)
return NULL; //这个传入的参数是空返回空,这个函数到这里就结束了
char *start=str; //把传入参数的首地址给 start(开始)
char *end=str+strlen(str)-1; //把传入参数的尾地址给 end(结束),strlen函数返回的长度不包括\0
如:传如abcd 那尾地址就是a+3,所以strlen返回是4要减1.
char temp; //交换值要先声明一个同类型的变量,如果直接赋值0就更好了。
while(start<end)
{
temp=*start; //两个值互换 end最后一个字符串的值换到了第一个。
*start=*end;
*end=temp;
start++; //换完一次就要移到下一个地址
end--; //同上
}
return str; //这个返回的是传入字符串倒序的。如:abcd 返回dcba;
}
我是这么理解的 如果不对请大神说明。。。谢谢 |