Chinaunix首页 | 论坛 | 博客
  • 博客访问: 365689
  • 博文数量: 53
  • 博客积分: 139
  • 博客等级: 入伍新兵
  • 技术积分: 589
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-27 01:55
个人简介

学习linux,学习编程。

文章分类

全部博文(53)

文章存档

2019年(1)

2018年(4)

2016年(4)

2014年(11)

2013年(33)

分类: C/C++

2014-09-11 21:05:15

下面是一个简单的C语言函数,该函数将字符串s中的字符顺序颠倒过来。
这里函数使用了字符长度这个参数length,这样能够简单一点。另外,也可以使用库函数计算字符串的长度。

// reverse chars in a line
// length is the length of a string s[]
void reverse(char s[], int length)
{
    int i;
    int  middle;    //the position of the middle element
                    //or the 0.5 position before the middle element
    char tmp;

    if(s[length -1] == '\n')
        --length;
    middle = length / 2;
    --length;
    for(i = 0; i < middle; ++i) {
        tmp = s[i];
        s[i] = s[length - i];
        s[length - i] = tmp;
    }
}

其实字符串本身已经包括了字符串长度,因此对这个程序再进行必要的修改,修改后如下所示。

// reverse chars in a line

void reverse(char s[], int length)
{
    int i, k length;
    int  middle;    //the position of the middle element
                    //or the 0.5 position before the middle element
    char tmp;

    k = 0;
    while (s[k] != '\0')
           ++k;
    length = k;
     if(s[length -1] == '\n')
        --length;                            /* leave newline in place             */
    middle = length / 2;
    k = --length;
    for(i = 0; i < middle; ++i) {
        tmp = s[i];
        s[i] = s[k - i];
        s[k - i] = tmp;

    }
}
阅读(5968) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~