【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】
题目:实现字符串反转
题目分析:
一、以N/2(N为字符串长度),依次交换左右两边的字符即可
算法实现:
#include <stdio.h>
#include <string.h>
#include <assert.h>
char * revstr(char *str)
{
char *h = str;
char *q = str + strlen(str)-1;
char *r = str;
assert(str != NULL);
char c;
while(h < q)
{
c = *h;
*h++ = *q;
*q-- = c;
}
return r;
}
int main(int argc, char *argv[])
{
printf("%s-->%s\n", argv[1], revstr(argv[1]));
return 0;
}