zoukankan      html  css  js  c++  java
  • 反转字符串(数组和指针两种方式)

    问题:

    1.反转字符串,比如str=“hello world!!!",反转后ret=“!!!dlrow olleh";

    数组方式代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <assert.h>
    
    char* reverse(char inp[],int size){
            assert(inp != NULL && size>=0); //NULL代表空地址,null只是一个符号
            int i=0,j=size-1;
            while(i<j){
              char tmp=inp[i];
              inp[i]=inp[j];
              inp[j]=tmp;
              i++;j--;
            }
            return inp;
    }
    
    int main(){
      char input[]={'h','e','l','l','o','!','!',''};
      char* ret = reverse(input,7);
      printf("%s
    ",ret);
      return 0;
    }

    输出:

    [root@admin Desktop]# ./a.out
    !!olleh
    [root@admin Desktop]#

    指针方式代码如下

    #include <stdio.h>
    #include <stdlib.h>
    #include <assert.h>
    
    char* reverse(char* inp)
    {
      assert(inp != NULL);
      char* p=inp;
      char* q=inp;
      while(*q != '') q++;
      q-=1;
      while(p<q)
      {
        printf("    p = %c; q = %c
     ",*p,*q);
        char tmp = *p;
        *p = *q;
        *q = tmp;
        p++;
        q--;
      }
      return inp;
    }
    
    int main(){
      char input[] = {'h','e','l','l','o',' ','b','a','b','y','!','!',''};
      char* ret = reverse(input);
      printf("result = %s
    ",ret);
      return 0;
    }
    [root@admin Desktop]# ./a.out
        p = h; q = !
         p = e; q = !
         p = l; q = y
         p = l; q = b
         p = o; q = a
         p =  ; q = b
     result = !!ybab olleh
    [root@admin Desktop]#
  • 相关阅读:
    Java中final,finalize和finally的区别
    EJB
    sql server函数
    rollup和grouping函数
    Java关于抽象类能否被实例化的问题
    jdk
    点击导航文字,页面刷新后仍然是点击状态
    jquery实现全选和取消全选
    去掉required红色边框
    左侧菜单高度自适应右侧内容
  • 原文地址:https://www.cnblogs.com/McQueen1987/p/3920549.html
Copyright © 2011-2022 走看看