3451|9

535

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

c++里面的字符串处理。。。 [复制链接]

                   我之前做一道题目想要把字符串形式的数字比如“1234“变为int形式的1234,之前我没有想到方法,后来问一个朋友,他告诉我两个方法

       第一个方法

          使用字符的ASCII码值和真实值之间的关系,比如'3'的ASCII码值是51,'0'的ASCII码值是48,则'3'-'0'=3这个就是第一种方法的原理。

        上面的列子的程序代码如下:

       #include<iostream.h>

       void main()
      {

       int a;

       char*p="1234";

       a=(*p-'0')*1000+(*(p+1)-'0')*100+(*(p+2)-'0')*10++(*(p+3)-'0')*1;

       cout<<a<<endl;

      } 

          

        第二个方法

            使用自带的函数 int atoi(const char*s)

代码如下 :

      #include<iostream.h>
      #include<stdlib.h>

       void main()
      {

       int a;

       char*p="1234";

       a=atoi(p);

       cout<<a<<endl;

      }

不知道大家还有没有好的思路啊,望大家贴出代码。。。嘻嘻

此帖出自编程基础论坛

最新回复

还可以用sscanf("1234","%d",num); 这样也可以,不过感觉楼主的第二张方法最好。还有atof、atol可以用,还有类似的可以进行进制之间转换、、、、、  详情 回复 发表于 2012-2-16 10:05
点赞 关注
 

回复
举报

535

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 

回复 楼主 小小白 的帖子

http://blog.csdn.net/myj0513/article/details/6831624

这个是我在网上找到的关于atoi的介绍 。。。。
此帖出自编程基础论坛
 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

板凳
 
第二种没研究。
至于第一种么。。。。。
不够通用
此帖出自编程基础论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

535

帖子

0

TA的资源

五彩晶圆(初级)

4
 

回复 板凳 辛昕 的帖子

要通用你要看我给的连接,里面有那个函数的一部分实现原理,你把他完善好了就通用了
此帖出自编程基础论坛
 
 
 

回复

7231

帖子

192

TA的资源

五彩晶圆(高级)

5
 
di 2种的这个函数 我都没用过的
此帖出自编程基础论坛
 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

6
 

回复 4楼 小小白 的帖子

我是说你这写的习惯不好而已
此帖出自编程基础论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

535

帖子

0

TA的资源

五彩晶圆(初级)

7
 

回复 6楼 辛昕 的帖子

就一句不好就打发了啊。。。。你说说哪里不好啊。。。。我下一次注意啊,你要指出来啊!谢谢啊!
此帖出自编程基础论坛
 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

8
 

回复 7楼 小小白 的帖子

你这只能处理 1234
要是123呢
12345呢
123456呢?

这话可说的够明白了
此帖出自编程基础论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

473

帖子

0

TA的资源

纯净的硅(高级)

9
 
第一种采用循环语句判断字符长度就通用,
此帖出自编程基础论坛
 
 
 

回复

888

帖子

3

TA的资源

五彩晶圆(初级)

10
 

还可以用sscanf("1234","%d",num);

这样也可以,不过感觉楼主的第二张方法最好。还有atof、atol可以用,还有类似的可以进行进制之间转换、、、、、

此帖出自编程基础论坛
 
个人签名邮箱:ternence.hsu@foxmail.com
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表