实现字符串翻转有两种方法可以使用:
1、传参只有一个,即待翻转的字符串;
#include <stdio.h>
char *reverse_string(char *string)
{
char *new_string = string;
char temp;
char *s1 = string;
while(*new_string++)
;
new_string -= 2;
while(string < new_string)
{
temp = *string;
*string++ = *new_string;
*new_string-- = temp;
}
return s1;
}
int main(void)
{
char string[] = "ABCDEFG";
char *s1;
s1 = reverse_string(string);
printf("%s\n", s1);
return 0;
}
2、传参有两个,一个是待翻转的字符串,一个是字符串长度
char *reserve_str(char *str, unsigned int len)
{
char *top = str;
char *end = str + len - 1;
char ch;
while (top < end)
{
ch = *top;
*top++ = *end;
*end-- = ch;
}
return str;
}
int main(int argc, const char *argv[])
{
char str[] = "123456789";
printf("%s\n", reserve_str(str, sizeof(str) - 1));
return 0;
}