A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 qddnovo 于 2014-6-11 21:47 编辑

#include string.h
#include "stdio.h"
main(void)
{
        char *src="hello,world";
        char *dest=NULL;
        dest=(char *) malloc(strlen(src));
        int len=strlen(str);
        char *d=dest;
        char *s=src[len];
        while(len--!=0)
                d++=s--;
        printf("%s",dest);
}

评分

参与人数 1技术分 +1 收起 理由
ios风痕 + 1

查看全部评分

2 个回复

倒序浏览
本帖最后由 张家伟2014 于 2014-6-8 07:29 编辑
  1. #include string.h
  2. #include "stdio.h"
  3. main(void)
  4. {
  5.         char *src="hello,world";
  6.         char *dest=NULL;
  7.         dest=(char *) malloc(strlen(src));
  8.         int len=strlen(str);
  9.         char *d=dest;
  10.         char *s=src[len];
  11.         while(len--!=0)
  12.                 d++=s--;
  13.         printf("%s",dest);
  14. }
复制代码
一、01行错误:包含一个头文件时,应该写在<>内,修正如下:
  1. #include <string.h>
复制代码
二、02行:编译时需要找到包含的头文件,使用<>这种方式,编译器会在标准库中开始查找,使用""这种方式,编译器会在当前工程所在的文件夹开始查找。为了提高查找效率,修正如下:
  1. #include <stdio.h>
复制代码
三、03行:main函数不明确标明返回值时,默认返回值为int,在C99标准中要求编译器至少给这种用法一个警告,修正如下:
  1. int main(void)
复制代码
四、07行错误:strlen函数不将字符串结尾标志'\0'计入长度,所以分配内存块时,需要多分配一个字节,修正如下:
  1. dest = (char *)malloc(strlen(src)+1);
复制代码
五、10行错误:程序是想将字符串倒置,那么需要记录字符串结尾标志'\0'的前一个字符的地址,而src[len]是字符串结尾标志'\0',并且不是地址,修正如下:
  1. char *s = &src[len-1];
复制代码
六、12行错误:一个指针包含两方面的含义,存储单元表示的地址和指针指向存储单元的数据类型。指针d和s存放的是存储单元的地址,需要用指针运算符对指向对象进行操作,修正如下:
  1. *d++ = *s++;
复制代码
七、最后一步添加字符串结尾标志'\0',修正如下:
  1. *d = '\0';
复制代码
修正后代码如下:
  1. #include <string.h>
  2. #include <stdio.h>
  3. int main(void)
  4. {
  5.     char *src = "hello,world";
  6.     char *dest = NULL;
  7.     dest = (char *)malloc(strlen(src)+1);
  8.     int len = strlen(src);
  9.     char *d = dest;
  10.     char *s = &src[len-1];
  11.     while (0 != len--) {
  12.         *d++ = *s--;
  13.     }
  14.     *d = '\0';
  15.     printf("%s\n",dest);
  16. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
ios风痕 + 1

查看全部评分

回复 使用道具 举报
谢谢哈。。。。。。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马