免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 1981 | 回复: 13
打印 上一主题 下一主题

刚看了连女生都会的C,发现自己问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-28 23:07 |只看该作者 |倒序浏览
两个版本的小程序一个有错,一个将就是那么回事,达人帮忙看下,谢了。
The First.

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(void)
  4. {
  5.         char * stri="I am a boy.";
  6.         int leng=strlen(stri)-1;
  7.     char *str2;
  8.         //int i=0;
  9.         while(leng>=0)
  10.         {
  11.                 *str2=stri[leng];
  12.                
  13.                 leng--;
  14.         }
  15.         *str2='\0';
  16.         stri=str2;
  17.         puts(stri);
  18. }
复制代码



The Second:

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(void)
  4. {
  5.         char * stri="I am a boy.";
  6.         int leng=strlen(stri)-1;
  7.     char str2[30];
  8.         int i=0;
  9.         while(leng>=0)
  10.         {
  11.                 str2[i++]=stri[leng];
  12.                
  13.                 leng--;
  14.         }
  15.         str2[i]='\0';
  16.         stri=str2;
  17.         puts(stri);
  18. }
复制代码

论坛徽章:
0
2 [报告]
发表于 2006-05-28 23:16 |只看该作者
原帖由 Pacer 于 2006-5-28 23:07 发表
两个版本的小程序一个有错,一个将就是那么回事,达人帮忙看下,谢了。
The First.
[code]
#include <stdio.h>
#include <string.h>
int main(void)
{
        char * stri="I am a boy."; ...



乱七八糟,连入门都没,好好看看书

论坛徽章:
0
3 [报告]
发表于 2006-05-28 23:17 |只看该作者
看你一句,我想钻地洞了。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
4 [报告]
发表于 2006-05-28 23:29 |只看该作者
"连女生都会"...
女生要么不懂计算机,懂了的话,有很多都是高手。
我有一个很好的朋友,一个漂亮的女孩子,她就是一个高手

论坛徽章:
0
5 [报告]
发表于 2006-05-28 23:32 |只看该作者
这个没什么异常,身边很多这样女生。

论坛徽章:
0
6 [报告]
发表于 2006-05-29 08:43 |只看该作者
看到这个话题,我就想起来两个人
一个我的C语言老师(女),一个百度招聘会上的女技术员
那叫一个强

论坛徽章:
0
7 [报告]
发表于 2006-05-29 08:58 |只看该作者
接受大家批评

  1. #include <stdio.h>
  2. #include <string.h>

  3. int main()
  4. {
  5.         char str[]="I am a good boy!";
  6.         int length=strlen(str)-1;

  7.         char temp;
  8.         char *p,*q;

  9.         for( p=&str[0], q=p+length; p<q; p++, q--)
  10.         {
  11.                 temp=*p;
  12.                 *p=*q;
  13.                 *q=temp;
  14.         }
  15.         printf("%s\r\n", str);
  16. }
复制代码


经过试验,将循环部分改成这样也可以

  1.         for( p=&str[0], q=p+length; p<q; p++, q--)
  2.         {
  3.                 *p^=*q;
  4.                 *q^=*p;
  5.                 *p^=*q;
  6.         }
复制代码

论坛徽章:
0
8 [报告]
发表于 2006-05-29 09:35 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
9 [报告]
发表于 2006-05-29 10:19 |只看该作者
原帖由 yefenghaoleng 于 2006-5-29 09:35 发表
不会吧


不会什么?
我已经做好了挨P的准备了

论坛徽章:
0
10 [报告]
发表于 2006-05-29 10:21 |只看该作者

  1.          for( p=&str[0], q=p+length; p<q; p++, q--)
  2.          {
  3.                 *p^=*q;
  4.                 *q^=*p;
  5.                 *p^=*q;
  6.          }               
复制代码


属于C语言中的位级运算,是^运算符环属性的应用.具体可参见CSAPP<<深入理解计算机系统>>一书中译版第二章P39.

[ 本帖最后由 jmsxy 于 2006-5-29 10:22 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP