4种方法实现字符串逆序输出

method1//

//难度等级:*
//passed the debugging
//int main()
//{
//    char s[100]={'\0'};
//    printf("Pls input a string:\n");
//    scanf("%s",&s);
//    int len=strlen(s);
//    while(i<len)
//        s1[i]=s[len-1-i];
//    printf("%s',s1);
//}
//method1///
//难度等级:*
//passed the debugging
//void inverse(char * s)
//{
//    int n=strlen(s)-1; 
//    int i=0;
//    while(i<=n/2)
//    {
//         char temp;
//         temp=s[i];
//         s[i]=s[strlen(s)-1-i];
//         s[strlen(s)-1-i]=temp;
//   i++;
//     }
//}
//int main()
//{
// char s[100]={'\0'};
//    printf("Pls input a string:\n");
//    scanf("%s",&s);
//    inverse(s);
//    printf("%s\n",s);
//   return 0;
//}

//method2//
//有些讨巧,只是显示的时候递归,实际上字符串s并未改变 难度等级:**
//passed the debugging
//void inverse(char *s)
//{
// if(*s=='\0') 
//  return;
// inverse(s+1);
// printf("%c",*s);
//}
//int main()
//{
//    char s[100]={'\0'};//初始化字符串数组!定义要加{}
//    printf("Pls input a string:\n");
//    scanf("%s",&s);//取地址符号,如果是指针 就不用加取地址符号了
//    inverse(s);
// printf("\n%s\n",s);
//}

//method3//
//递归,将字符串s改变成逆序 难度等级:***
void inverse(char* s, int len)
{
    if(len<=1)
    {
        return;
 }
    char temp;
 temp=s[0];
 s[0]=s[len-1];
 s[len-1]=temp;
 inverse(++s,len-2);       
}
int main()
{
    //char s[100]={'\0'};
    printf("Pls input a string:\n");
    //scanf("%s",&s);

 char s[100]="asbd";    
 inverse(s,4);
 printf("\n%s\n",s);
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值