这个问题如果可以使用string函数,其实就简单了,定义一个数组用指针从最后复制到数组就行了。
如果不使用string函数,这里就需要使用两个指针来控制长度。
以下是代码实现:
#include<stdio.h>
char* reverse_string(char * string) //这里定义字符指针类型的指针
{
char *p;
p = string;
char * q;
char n = 0;
while(*p != '\0')
{
p++;
} //求其长度
p--;
for(q = p,p = string;p <= q;q--,p++) //初始化指针
{
n = *p;
*p = *q;
*q = n;
}<span style="white-space:pre"> </span>//将首尾指针所指向的字符交换
return string;<span style="white-space:pre"> </span>//返回字符串指针string
}
int main()
{
char string[] = "ret_is_a_good_man!"; //这里注意string定义成数组而不是常量字符串
printf("%s\n",reverse_string(string));
return 0;
}
结果如下: