Chinaunix首页 | 论坛 | 博客
  • 博客访问: 929067
  • 博文数量: 177
  • 博客积分: 8613
  • 博客等级: 中将
  • 技术积分: 2835
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-12 04:16
文章分类
文章存档

2012年(12)

2011年(24)

2010年(24)

2009年(75)

2008年(42)

我的朋友

分类: C/C++

2009-07-15 23:33:32

   写了半个小时,写出来个有问题的程序,明天用gdb调试以下看看问题出在哪里:

#include
void reverse_string(char *string)
{
    int i,length;
    length = 0;
    char tmp;
    while (*string++ != '\0')
    length += 1;
    printf("length:%d\n",length);
    string -= length;
    string -= 1;

    for (i=0; i<=((length-1)/2); i++)
    {
        tmp = string[i];
        string[i] = string[length-1-i];
        string[length-1-i] = tmp;
        }

    }

int main(void)
{
    char *str = "hello a string heihei";
    reverse_string(str);
    //printf("%s\n",str);
    }

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

net_liufeng2009-07-18 23:32:36

是的,呵呵,str用char *初始化的时候,就成了字符串常量了,常量不能修改啦

chinaunix网友2009-07-17 23:30:37

char *str = "hello a string heihei"; 改成 char str[]="hello a string heihei"; 就可以了,前者分配在字符串常量区,你逆序的时候对常量区进行更改,当然是不可行的!