设为首页 加入收藏

TOP

[C语言] 字符串逆序
2015-11-19 23:07:12 来源: 作者: 【 】 浏览:14
Tags:语言 字符串
字符串逆序有多种办法,下面我们分方法而论:
 
// 非递归实现字符串反转:
 
char *reverse(char *str)   
{   
if( !str )   
{   
return NULL;
}   
   
    int len = strlen(str);
    int i,j;   
    char temp;   
    for( i = 0,j=len-1; i
#include
 
void reverse_string(const char * const string)
{
    assert(string);
    if (*string == '\0')
        return;
    else
        reverse_string(string+1);// 先将字符压栈
    putchar(*string);// 再将字符按照先进后出的顺序输出
}
int main()
{
    char string[20] = {0};
    scanf("%[^\n]",string); 
    reverse_string(string);
    printf("\n");
    return 0;
}
 
亦可:(若要求不使用其他库函数)
 
#include
#include
 
int my_strlen(const char *string)
{
    assert(string);
    if(*string == '\0')
    {
        return;
    }
    else
        return 1+my_strlen(string+1);
}
 
 
char *reverse_string(char *string,int len)
{
    assert(string);
    if(!string)
    {
        return NULL;
    }
    if(len > 1)
    {
        char tmp = string[0];
        string[0] = string[len-1]; 
        string[len-1] = '\0';           // 最后一个字符在下次递归时不再处理
        reverse_string(string + 1,len-2);//递归调用,每调用一次,要反转的字符串分别从头和末尾各减少一个 
        string[len-1] = tmp;
    }
    return string;
}
 
int main()
{
    char string[20] = {0};
    int len;
    scanf("%s",string);
    len = my_strlen(string);
    reverse_string(string,len);
    printf("%s\n",string);
    return 0;
}

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言实现之谁是凶手,杀死比尔5 下一篇[C语言] 实现strstr函数

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: