有没有把字符转换为数字的办法

lily604 2008-03-11 12:14:34
txt文件中的01怎么才能加到一起,我把他们加一起是147,也就是转换为ASCII码之后加的,有没有办法使得他们能够转为数字1和0之后在相加啊?
...全文
147 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
abupie 2008-03-11
  • 打赏
  • 举报
回复
试试这样:

int a = atoi("0");
int b = atoi("1");
printf("%s + %s = %d\n", "0", "1", a + b);

还可以用sscanf().
HelloDan 2008-03-11
  • 打赏
  • 举报
回复



#include<stdio.h>


int main()
{

char a='5',b='6';
printf("%d",a+b-'0'-'0');


return 0;
}

aloneboat 2008-03-11
  • 打赏
  • 举报
回复
atoi()函数即可
rularys 2008-03-11
  • 打赏
  • 举报
回复
有啊,先将ASII码转换到实际的对象再对其进行操作,不要直接把ASII码相加
ryfdizuo 2008-03-11
  • 打赏
  • 举报
回复
#include <iostream>
#include <string>
using namespace std;

int main()
{
string first("0101");
string second("1100");

for(int i=0; i<4; i++)
cout<<first[i]+second[i]-'0'-'0';
cout<<endl;
}
//output:1201
lily604 2008-03-11
  • 打赏
  • 举报
回复
我用getline ,取一行字符后,怎么样把它们分别转化为数字啊
然后在相加,用atoi 岂不是把整个字符串如1111转换为一万一千一百一十一了吗,我想要单个转化
独孤过儿 2008-03-11
  • 打赏
  • 举报
回复
楼上的兄弟,可能是咱们不是一个领域的,所以理念上有点差异,呵呵...

你要是做过嵌入式,或者系统底层的东西,就知道每一字节的内存都要节省了。当然,做上层的应用一般不会太care这方面的东西...
abupie 2008-03-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fetag 的回复:]
C/C++ code
'1' - '0' == 1;
... ...
'9' - '0' == 9
[/Quote]
调用函数的确会比直接用这个方法性能差. 但是直接加减,比如先检查所有字符串是否是'0' - '9', 这样反而不如用函数先把字符转换成数字.而且,现在的CPU还在乎这点计算量么? 人力, 比机器更贵. 一周的人力成本都能买块好的CPU了.
Treazy 2008-03-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 lily604 的帖子:]
txt文件中的01怎么才能加到一起,我把他们加一起是147,也就是转换为ASCII码之后加的,有没有办法使得他们能够转为数字1和0之后在相加啊?
[/Quote]

都知道问题了,减去一个'0'再相加不就可以了!
独孤过儿 2008-03-11
  • 打赏
  • 举报
回复
调用函数影响效率,划不来...
独孤过儿 2008-03-11
  • 打赏
  • 举报
回复

'1' - '0' == 1;
... ...
'9' - '0' == 9
野男孩 2008-03-11
  • 打赏
  • 举报
回复
都知道是转换为ASCII码之后加的,那就先转换成数字呗。减一个0x30就行了。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧