递归实现字符串反转char* reverse(char* str)合集
2010-09-28 17:50
477 查看
先看到的是一个递归输出的,不满足要求
void ret_str(char* s)
{
if(*s != '/0')
{
ret_str(s+1);
}
cout<<*s;
}
找到的比较好的两种方法,没有static变量,线程安全
还有其他方法
void ret_str(char* s)
{
if(*s != '/0')
{
ret_str(s+1);
}
cout<<*s;
}
找到的比较好的两种方法,没有static变量,线程安全
char* reverse(char* str){ int len = strlen(str); char tmp = str[len - 1]; if (len <= 1) return str; str[len - 1] = '/0'; reverse(str + 1); str[len - 1] = str[0]; str[0] = tmp; return str; } 下面两种算一种思想 void reverse(char *s) { if (*s) { char *p = s; char c = s[0]; do {*p = *(p+1); p++;}while(*p); reverse(s); s[strlen(s)] = c; } } char* reverse1(char *s) { if (*s) { int i; char c; i = strlen(s) - 1; c = s[i]; s[i] = 0; reverse1(s); for (i = strlen(s); i > 0 ; i--) s[i] = s[i-1]; s[0] = c; } return s; }
还有其他方法
void StrRev( char *str ) { if ( *(str) && *(str+1) ) { StrRev( str+1 ); while ( *(str+1) ) { *str ^= *(str+1); *(str+1) ^= *str; *(str) ^= *(str+1); str++; } } } char *reverse(char *str) { static int stk; static char *s; if(!stk) s = str; stk++; if(*str) { char *p = str, t = *p; while(p > s) { *p = *(p-1); p--; } *p = t; reverse(str+1); } stk--; return str; } void reverse(char *str) { char *tmp; int i; int len; char c; int add; len = strlen(str); if(len < 1) return; if(len&1) { add = len/2+1; } else { add = len/2; } tmp = str + add; reverse(tmp); for(i=0;i<len/2;i++) { c = str[i]; str[i] = str[i+add]; str[i+add] = c; } reverse(tmp); }
相关文章推荐
- 【C语言】编写一个函数reverse_string(char * string)(递归实现),将参数字符串中的字符反向排列,不能使用C函数库中的字符串操作函数。
- 编写一个函数reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列。要求:不能使用C函数库中的字符串操作函数。
- 使用C语言递归与非递归实现字符串反转函数char *reverse(char *str)的方法
- C语言递归和非递归实现字符串反转函数char *reverse(char *str)
- CI1.2 用c或c++实现void reverse(char* str)函数,即反转一个null结尾的字符串
- reverse_string(char *string)递归实现字符串翻转 和对“++”操作的一些分析
- 编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中 的字符串操作函数。
- 编写一个函数reverse_string(char * string)(递归实现),反向排列字符串
- 用递归的思想写编写一个函数reverse_string(char * string)实现字符串反向输出和反向排列
- 算法题 用C或C++实现void reverse(char* str)函数,即反转一个null结尾的字符串
- 【C++】用C或C++实现void reverse(char* str)函数,即反转一个null结尾的字符串
- 【c语言】编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列。
- 编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列。
- C语言 编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列
- //4. 编写一个函数reverse_string(char * string)(递归实现) //实现:将参数字符串中的字符反向排列。 //要求:不能使用C函数库中的字符串操作函数。
- C语言:编写reverse_string(char * string)(递归实现)函数,将参数字符串中的字符反向排列
- 编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列。
- C语言:编写reverse_string(char * string)(递归实现)函数,将参数字符串中的字符反向排列
- 用C++实现void reverse(char* str)函数,即反转一个null结尾的字符串.
- 一只程序猿的养成日记 第一章 第十三节 编写一个函数reverse_string(char * string)(递归实现)