一个字符串反转的小程序#includestdio.hvoid reverse_str(char* buf, int n)void main(){char* aabcd
一个字符串反转的小程序
#include<stdio.h>
void reverse_str(char* buf, int n);
void main()
{
char* a="abcde";
reverse_str(a,5);
printf("%s\n",a);
}
void reverse_str(char* buf, int n)
{
char tmp= buf[0];
if(n<2)
return;
buf[0] = buf[n-1];
buf[n-1] =tmp;
reverse_str(buf++,n--);
}
程序想要实现“abcde”变为“edcba”
编译可以通过,执行却有问题,求助大侠~
[解决办法]
还是错了,应该这样子:
- C/C++ code
#include<stdio.h>void reverse_str(char* buf, int n);void main(){ char a[]="abcde"; reverse_str(a,5); printf("%s\n",a);}void reverse_str(char* buf, int n){ char tmp= buf[0]; if(n<2) return; buf[0] = buf[n-1]; buf[n-1] =tmp; reverse_str(++buf,n-2);} 