首页 > 其他 > 详细

《C和指针》章节后编程练习解答参考——6.3

时间:2015-11-15 20:38:17      阅读:234      评论:0      收藏:0      [点我收藏+]

《C和指针》——6.3

题目:

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

函数原型:

  void reverse_string(char *string);

要求:

  使用指针而不是数组下标

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

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

解答代码:

#include <stdio.h>

void reverse_string(char *string)
{
    int i, n=0;
    
    while (*(string+n) != \0)        //计算字符串中字符的个数
        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:\n%s\n", source);
    reverse_string(source);
    printf("After reverse:\n%s\n", source);

    getchar();
    return 0;
}

注:

  1、先计算字符串中非‘\0‘字符的个数

  2、首位字符轮流交换

《C和指针》章节后编程练习解答参考——6.3

原文:http://www.cnblogs.com/microxiami/p/4967107.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!