This page looks plain and unstyled because you're using a non-standard compliant browser. To see it in its best form, please upgrade to a browser that supports web standards. It's free and painless.
| « | 七月 2009 | » | ||||
|---|---|---|---|---|---|---|
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | 31 | ||
出口香烟
FC 4下安装ORACLE 9i 的全过程
安装Linux 的硬盘分区
C语言面试题大汇总之华为面试题
面试经典试题
C/C++ 程序设计员应聘常见面试试题深入剖析
美国军工五巨头简介
经典面试问题回答思路
老师的语录
华为公司 java 面试题
今天去一面,面试官云风要我把笔试时做的atoi实现改进一下,我想了半天,终于想出一点,即确定某字符所在的万、千、百、十位后,本来是循环乘10,我说可以做一个数组里面就放上10000,1000,100,10,1,找到位数后直接索引再乘那个字符,这样多次乘法就减为一次了。可是云风说还可以改进,然后提示除了在数组里放上10000,1000,100,10,1之外还可以放别的数,甚至多位一起乘,当时真是紧张,完全没明白!
哪位高手指点一下?要是还有二面,我就好答了。我先去debug一下tc库里atoi的实现吧,等看懂了再来帖~
这是我刚开始学C++的时候,不知道C++里有可以把字符串转换成数字的函数是什么时,自己写的一个函数:
int strtoint(string s)
{
if (s[0] != '-')
{
s = "+" + s;
}
int n = 0;
for(int i = 1, l = s.size();i < l;i++)
{
if ((s[i] > 57)||(s[i] < 48))
{
cerr << "Please enter integrity!" << 'n';
system("pause");
exit(1);
}
n = n * 10 + (s[i] - 48);
}
if (s[0] == '-')
n = -1 * n;
return n;
}
最简单的是调试跟进去,前提是你已经安装了CRT的源代码,我VC7看到的代码是这样的:
long __cdecl _tstol(
const _TCHAR *nptr
)
{
int c; /* current char */
long total; /* current total */
int sign; /* if '-', then negative, otherwise positive */
#if defined (_MT) && !defined (_UNICODE)
pthreadlocinfo ptloci = _getptd()->ptlocinfo;
if ( ptloci != __ptlocinfo )
ptloci = __updatetlocinfo();
/* skip whitespace */
while ( __isspace_mt(ptloci, (int)(_TUCHAR)*nptr) )
#else /* defined (_MT) && !defined (_UNICODE) */
while ( _istspace((int)(_TUCHAR)*nptr) )
#endif /* defined (_MT) && !defined (_UNICODE) */
++nptr;
c = (int)(_TUCHAR)*nptr++;
sign = c; /* save sign indication */
if (c == _T('-') || c == _T('+'))
c = (int)(_TUCHAR)*nptr++; /* skip sign */
total = 0;
while ( (c = _tchartodigit(c)) != -1 ) {
total = 10 * total + c; /* accumulate digit */
c = (_TUCHAR)*nptr++; /* get next char */
}
if (sign == '-')
return -total;
else
return total; /* return result, negated if necessary */
}
#define _tchartodigit(c) ((c) >= '0' && (c) <= '9' ? (c) - '0' : -1)
int StrToInt(char* str)
{
int total=0;
while(*str != 0)
{
total = total * 10 + (int)(*str - '0');
}
return total;
}
long __cdecl atol(
const char *nptr
)
{
int c; /* current char */
long total; /* current total */
int sign; /* if '-', then negative, otherwise positive */
/* skip whitespace */
while ( isspace((int)(unsigned char)*nptr) )
++nptr;
c = (int)(unsigned char)*nptr++;
sign = c; /* save sign indication */
if (c == '-' || c == '+')
c = (int)(unsigned char)*nptr++; /* skip sign */
total = 0;
while (isdigit(c)) {
total = 10 * total + (c - '0'); /* accumulate digit */
c = (int)(unsigned char)*nptr++; /* get next char */
}
if (sign == '-')
return -total;
else
return total; /* return result, negated if necessary */
}
vc6下的源码。 atoi 也是调用 atol
回复
wxshsjad希望大家健康平平安安幸福吉祥
rcvnflk | 09/03/2008, 15:27
Great site. Keep doing.
cialis
[URL=http://www.ocztechnologyforum.com/forum/member.php?u=53257]cialis[/URL]
http://www.ocztechnologyforum.com/forum/member.php?u=53257
xanax
[URL=http://www.dvxuser.com/V6/member.php?u=49383]xanax[/URL]
http://www.dvxuser.com/V6/member.php?u=49383
cialis
[URL=http://dotnet.org.za/members/GetCialis.aspx]cialis[/URL]
http://dotnet.org.za/members/GetCialis.aspx
phentermine
[URL=http://www.dvxuser.com/V6/member.php?u=49381]phentermine[/URL]
http://www.dvxuser.com/V6/member.php?u=49381
viagra
[URL=http://board.talibkweli.com/index.php?showuser=3786]viagra[/URL]
http://board.talibkweli.com/index.php?showuser=3786
Great site. Keep doing.
cialis
[URL=http://www.ocztechnologyforum.com/forum/member.php?u=53257]cialis[/URL]
http://www.ocztechnologyforum.com/forum/member.php?u=53257
xanax
[URL=http://www.dvxuser.com/V6/member.php?u=49383]xanax[/URL]
http://www.dvxuser.com/V6/member.php?u=49383
cialis
[URL=http://dotnet.org.za/members/GetCialis.aspx]cialis[/URL]
http://dotnet.org.za/members/GetCialis.aspx
phentermine
[URL=http://www.dvxuser.com/V6/member.php?u=49381]phentermine[/URL]
http://www.dvxuser.com/V6/member.php?u=49381
viagra
[URL=http://board.talibkweli.com/index.php?showuser=3786]viagra[/URL]
http://board.talibkweli.com/index.php?showuser=3786
Congratulations, Viagra, %OO, Order Viagra, ttsz, Viagra, =(((, Buy Viagra, 6783, Viagra, 970956,
Congratulations, Viagra, %OO, Order Viagra, ttsz, Viagra, =(((, Buy Viagra, 6783, Viagra, 970956,
Viagra | 04/07/2009, 10:14
Xanax
Best Wishes!, Tramadol
, 8-(((, Cheap Klonopin, 436189, cialis
, kefchb, Phentermine
, 043294, kamagra
, hzcvzy,
I Like Your Work, Buy Viagra, 53490, Buy Viagra, 5628, Viagra, tso, Buy Viagra, 1931, Order Viagra, 921895,
I Like Your Work, Buy Viagra, 53490, Buy Viagra, 5628, Viagra, tso, Buy Viagra, 1931, Order Viagra, 921895,
Buy Viagra | 04/07/2009, 11:00
kamagra
Thank You!, Valium, fgfybd, Cigarettes
, 1610, Xanax
, ycxk, Buy Cialis Online, >:PPP, Buy kamagra online, 8-(((,
Nise Site, Buy Viagra, :]]], Viagra, inz, Buy Viagra, 38259, Viagra, 013, Viagra, >:((,
Nise Site, Buy Viagra, :]]], Viagra, inz, Buy Viagra, 38259, Viagra, 013, Viagra, >:((,
Buy Viagra | 04/07/2009, 11:46
Phentermine
Good job., Cheap Valium, 871241, Buy Xanax, icrslj, Ativan, :DD, Cheap viagra, nvvzab, Buy Cialis Online, 272,
Phentermine | 04/07/2009, 12:16
Hello Everybody, Buy Viagra, 804190, Order Viagra, 564042, Buy Viagra, 862, Order Viagra, wryu, Order Viagra, eatyzr,
Hello Everybody, Buy Viagra, 804190, Order Viagra, 564042, Buy Viagra, 862, Order Viagra, wryu, Order Viagra, eatyzr,
Order Viagra | 04/07/2009, 12:32
Ativan
I like your work!, Tramadol, =((, Buy Valium, 388976, Cigarettes
, jojyej, viagra kaufen, iuf, comprare kamagra, 145,
Coolest Site, Buy Viagra, 76483, Buy Viagra, twwycw, Order Viagra, >:-P, Buy Viagra, 2542, Order Viagra, 5624,
Coolest Site, Buy Viagra, 76483, Buy Viagra, twwycw, Order Viagra, >:-P, Buy Viagra, 2542, Order Viagra, 5624,
Buy Viagra | 04/07/2009, 14:04
Cheap Ambien
Your Site Is Great!, Ambien
, :))), Buy Ativan, =D, viagra kaufen, ucowpb, Buy kamagra online, rffeqq, Phentermine
, >:-],
Congratulations, Order Viagra, vmx, Buy Viagra, qgng, Order Viagra, 8267, Viagra, =-), Order Viagra, 85093, Buy Viagra, 783069, Buy Viagra, cnk,
Congratulations, Order Viagra, vmx, Buy Viagra, qgng, Order Viagra, 8267, Viagra, =-), Order Viagra, 85093, Buy Viagra, 783069, Buy Viagra, cnk,
Viagra | 04/07/2009, 14:35
Cigarettes
I like your work!, Phentermine
, :PP, cialis
, zsd, kamagra, =-D, Viagra
, 8], Buy Xanax, 166855,
Beautiful Site, Order Viagra, zaouf, Order Viagra, 53055, Order Viagra, :), Buy Viagra, 896, Viagra, >:-]], Buy Viagra, 8OO, Viagra, 739,
Beautiful Site, Order Viagra, zaouf, Order Viagra, 53055, Order Viagra, :), Buy Viagra, 896, Viagra, >:-]], Buy Viagra, 8OO, Viagra, 739,
Buy Viagra | 04/07/2009, 15:21
Good Job, Viagra, pzfevn, Viagra, 270767, Order Viagra, zayfd, Buy Viagra, >:-), Buy Viagra, =-]]], Order Viagra, 210483, Viagra, =DDD,
Good Job, Viagra, pzfevn, Viagra, 270767, Order Viagra, zayfd, Buy Viagra, >:-), Buy Viagra, =-]]], Order Viagra, 210483, Viagra, =DDD,
Buy Viagra | 04/07/2009, 16:08
Buy Cialis
Thank You!, Phentermine
, %[[[, Viagra
, %[[[, Ativan, 6096, Diazepam, fpcs, Cialis
, sloz,
Best Wishes!, Buy Viagra, =(, Buy Viagra, 8-), Order Viagra, 8-((, Viagra, tgbqnl, Order Viagra, :), Viagra, 022901, Buy Viagra, %))),
Best Wishes!, Buy Viagra, =(, Buy Viagra, 8-), Order Viagra, 8-((, Viagra, tgbqnl, Order Viagra, :), Viagra, 022901, Buy Viagra, %))),
Order Viagra | 04/07/2009, 16:55
Cialis
Good job., Ativan
, 901864, Buy Viagra online, 89532, Alprazolam, wkc, kamagra
, yywzes, Cialis
, 230,
Hi All, Viagra, 7046, Viagra, crbiu, Viagra, wpygt, Buy Viagra, %-))), Buy Viagra, =-)), Order Viagra, >:-))), Viagra, fbpqft,
Hi All, Viagra, 7046, Viagra, crbiu, Viagra, wpygt, Buy Viagra, %-))), Buy Viagra, =-)), Order Viagra, >:-))), Viagra, fbpqft,
Order Viagra | 04/07/2009, 17:42
Good Day, Viagra, >:]], Buy Viagra, :]], Buy Viagra, zbujha, Buy Viagra, :-]]], Viagra, iequlk, Buy Viagra, 766, Buy Viagra, hywjb,
Good Day, Viagra, >:]], Buy Viagra, :]], Buy Viagra, zbujha, Buy Viagra, :-]]], Viagra, iequlk, Buy Viagra, 766, Buy Viagra, hywjb,
Order Viagra | 04/07/2009, 18:28
Hello, Buy Viagra, %PP, Viagra, 87312, Viagra, ubj, Buy Viagra, asv, Viagra, =OOO, Buy Viagra, >:-[[, Viagra, 264,
Hello, Buy Viagra, %PP, Viagra, 87312, Viagra, ubj, Buy Viagra, asv, Viagra, =OOO, Buy Viagra, >:-[[, Viagra, 264,
Buy Viagra | 04/07/2009, 19:15
Wonderfull Site, Buy Viagra, czx, Order Viagra, qql, Viagra, 8PP, Order Viagra, bouv, Order Viagra, biwmlh, Order Viagra, pbjro, Buy Viagra, 12374,
Wonderfull Site, Buy Viagra, czx, Order Viagra, qql, Viagra, 8PP, Order Viagra, bouv, Order Viagra, biwmlh, Order Viagra, pbjro, Buy Viagra, 12374,
Order Viagra | 04/07/2009, 20:02
Cialis
Thank You!, Cheap viagra, 8-DDD, Buy Ambien, >:-PP, viagra on line, 1588, cialis on line, :))), Marlboro Cigarettes, 9735,
Cialis | 04/07/2009, 20:10
Simply Perfectly, Viagra, >:-]]], Viagra, =-[[, Buy Viagra, %PP, Viagra, >:-PPP, Buy Viagra, 243, Buy Viagra, 7674, Viagra, 005,
Simply Perfectly, Viagra, >:-]]], Viagra, =-[[, Buy Viagra, %PP, Viagra, >:-PPP, Buy Viagra, 243, Buy Viagra, 7674, Viagra, 005,
Buy Viagra | 04/07/2009, 20:48
Hi There, Buy Viagra, cewzpm, Viagra, 674, Buy Viagra, 1947, Buy Viagra, >:[, Viagra, nwx, Order Viagra, >:-], Order Viagra, :[,
Hi There, Buy Viagra, cewzpm, Viagra, 674, Buy Viagra, 1947, Buy Viagra, >:[, Viagra, nwx, Order Viagra, >:-], Order Viagra, :[,
Viagra | 04/07/2009, 21:35
Great site. Keep doing.
phentermine
[URL=http://www.dvxuser.com/V6/member.php?u=49381]phentermine[/URL]
http://www.dvxuser.com/V6/member.php?u=49381
phentermine
[URL=http://forum.desktopreview.com/member.php?u=145776]phentermine[/URL]
http://forum.desktopreview.com/member.php?u=145776
phentermine
[URL=http://www.ocztechnologyforum.com/forum/member.php?u=53258]phentermine[/URL]
http://www.ocztechnologyforum.com/forum/member.php?u=53258
cheap tramadol
[URL=http://board.talibkweli.com/index.php?showuser=3789]cheap tramadol[/URL]
http://board.talibkweli.com/index.php?showuser=3789
cheap cialis
[URL=http://dotnet.org.za/members/GetCialis.aspx]cheap cialis[/URL]
http://dotnet.org.za/members/GetCialis.aspx
Great site. Keep doing.
phentermine
[URL=http://www.dvxuser.com/V6/member.php?u=49381]phentermine[/URL]
http://www.dvxuser.com/V6/member.php?u=49381
phentermine
[URL=http://forum.desktopreview.com/member.php?u=145776]phentermine[/URL]
http://forum.desktopreview.com/member.php?u=145776
phentermine
[URL=http://www.ocztechnologyforum.com/forum/member.php?u=53258]phentermine[/URL]
http://www.ocztechnologyforum.com/forum/member.php?u=53258
cheap tramadol
[URL=http://board.talibkweli.com/index.php?showuser=3789]cheap tramadol[/URL]
http://board.talibkweli.com/index.php?showuser=3789
cheap cialis
[URL=http://dotnet.org.za/members/GetCialis.aspx]cheap cialis[/URL]
http://dotnet.org.za/members/GetCialis.aspx
Perfect Site, Order Viagra, 8-[[[, Buy Viagra, hubjkp, Buy Viagra, 8-], Order Viagra, lqzy, Viagra, zwee, Buy Viagra, >:-[[[, Viagra, uje,
Perfect Site, Order Viagra, 8-[[[, Buy Viagra, hubjkp, Buy Viagra, 8-], Order Viagra, lqzy, Viagra, zwee, Buy Viagra, >:-[[[, Viagra, uje,
Buy Viagra | 04/07/2009, 22:22
Good Design, Viagra, vertex, Viagra, 23302, Buy Viagra, xbh, Viagra, 3638, Viagra, uaauy, Viagra, 03520, Order Viagra, ymimbf,
Good Design, Viagra, vertex, Viagra, 23302, Buy Viagra, xbh, Viagra, 3638, Viagra, uaauy, Viagra, 03520, Order Viagra, ymimbf,
Buy Viagra | 04/07/2009, 23:09
I Like Your Work, Order Viagra, =-), Buy Viagra, 470736, Buy Viagra, 8-OO, Buy Viagra, =-), Viagra, 8-OOO, Viagra, 468864, Buy Viagra, 8((,
I Like Your Work, Order Viagra, =-), Buy Viagra, 470736, Buy Viagra, 8-OO, Buy Viagra, =-), Viagra, 8-OOO, Viagra, 468864, Buy Viagra, 8((,
Viagra | 04/07/2009, 23:56