-
-
- 这是非递归的:
-
- /*实现字符串翻转*/
- char* reverse_str(char* str)
- {
- if(NULL == str) //字符串为空直接返回
- {
- return str;
- }
- char *begin;
- char *end;
- begin = end = str;
- while(*end != '\0') //end指向字符串的末尾
- {
- end++;
- }
- --end;
- char temp;
- while(begin < end) //交换两个字符
- {
- temp = *begin;
- *begin = *end;
- *end = temp;
- begin++;
- end--;
- }
- return str; //返回结果
- }
- void main()
- {
- char str[] = "123456";
- printf(reverse_str(str));
- }
递归的:
char *reverse(char *str)
{
int len = strlen(str);
if( len > 1 )
{
char ctemp =str[0] ;
str[0] = str[len-1];
str[len-1] = '\0';
reverse(str+1);
str[len-1] =ctemp;
}
return str;
}
{
int len = strlen(str);
if( len > 1 )
{
char ctemp =str[0] ;
str[0] = str[len-1];
str[len-1] = '\0';
reverse(str+1);
str[len-1] =ctemp;
}
return str;
}