如何快速将字符串转换成整数

xian467 2007-04-17 04:49:39
有两百万个这个的字符:"8613719301890"
怎样可以比较快速的转换成整数:8613719301890|460009122147207|

各位请帮帮忙啊
...全文
376 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
dmt9697 2007-04-17
  • 打赏
  • 举报
回复
你说说你的用途
飞哥 2007-04-17
  • 打赏
  • 举报
回复
或者是sscanf

sscanf(buffer,format...);
飞哥 2007-04-17
  • 打赏
  • 举报
回复
atof, atoi, _atoi64, atol
Convert strings to double (atof), integer (atoi, _atoi64), or long (atol).

double atof( const char *string );

int atoi( const char *string );

__int64 _atoi64( const char *string );

long atol( const char *string );

Routine Required Header Compatibility
atof <math.h> and <stdlib.h> ANSI, Win 95, Win NT
atoi <stdlib.h> ANSI, Win 95, Win NT
_atoi64 <stdlib.h> Win 95, Win NT
atol <stdlib.h> ANSI, Win 95, Win NT

yutaooo 2007-04-17
  • 打赏
  • 举报
回复
boost::lexical_cast ?
taodm 2007-04-17
  • 打赏
  • 举报
回复
功能都没实现呢,就先别讲快慢问题。
这个东西你用char */string直接进行排序是很简单的,根本就没你说的那么麻烦。
要迎难而上。
xian467 2007-04-17
  • 打赏
  • 举报
回复
还有一个问题是我排好序了之后,那么数变成了用科学记数法来表示拉(8.613719+e12),我想不用科学记数法,那应该怎样做啊,用那个函数快点啊,
xian467 2007-04-17
  • 打赏
  • 举报
回复
因为我要对它们来排序,如果不转为整数的话,就要用二维的字符指针来存啊,这样太麻烦拉,
taodm 2007-04-17
  • 打赏
  • 举报
回复
话又说回来了,你想转整形是为了干嘛?
taodm 2007-04-17
  • 打赏
  • 举报
回复
不要这么不动脑筋,你得找你的编译器下64位整型的名字是啥。
freshui 2007-04-17
  • 打赏
  • 举报
回复
你是要存成一个数还是很多个数?
很多就简单了

sscanf即可
xian467 2007-04-17
  • 打赏
  • 举报
回复
long long int r = 0;这样定义出错拉
xian467 2007-04-17
  • 打赏
  • 举报
回复
这样会快吗,这想它要做两百万次的循环就可能会慢拉
taodm 2007-04-17
  • 打赏
  • 举报
回复
超过int范围了,用long long int或者__int64等类型。
long long int r = 0;
for (...)
{
r = r * 10 + s[i] - '0'
}
够快了。
wwwasdf5 2007-04-17
  • 打赏
  • 举报
回复

给大家介绍个技术群

大家一起学习,一起提高

32517994

64,637

社区成员

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

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