zoukankan      html  css  js  c++  java
  • 《C和指针》章节后编程练习解答参考——6.3

    《C和指针》——6.3

    题目:

      编写一个函数,把参数字符串中的字符反向排列。

    函数原型:

      void reverse_string(char *string);

    要求:

      使用指针而不是数组下标

      不要使用任何C函数库中用于操纵字符串的函数

      不要声明一个局部数组来临时存储参数字符串

    解答代码:

    #include <stdio.h>
    
    void reverse_string(char *string)
    {
        int i, n=0;
        
        while (*(string+n) != '')        //计算字符串中字符的个数
            n++;
        n--;                            //字符个数n作为索引号时要减1,即从0到n-1
        if (n > 0)                        //字符个数小于等于1时没有必要反转
        {
            for (i=0; i<=(n/2); i++)
            {
                if (i != (n-i))
                {
                    char p;                //字符内容交换
                    p = *(string+i);
                    *(string+i) = *(string+n-i);
                    *(string+n-i) = p;
                }
            }
        }
    }
    
    int main()
    {
        char source[] = "ABCDEFGH";
    
        printf("Before reverse:
    %s
    ", source);
        reverse_string(source);
        printf("After reverse:
    %s
    ", source);
    
        getchar();
        return 0;
    }

    注:

      1、先计算字符串中非''字符的个数

      2、首位字符轮流交换

  • 相关阅读:
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    7.21Java入门--->第二节
    7.20Java入门--->第一节
  • 原文地址:https://www.cnblogs.com/microxiami/p/4967107.html
Copyright © 2011-2022 走看看