草庐IT

Python 相当于 atoi/atof

Python喜欢引发异常,这通常很棒。但是我正面临一些我非常想使用C的atoi/atof语义转换为整数的字符串-例如“3of12”、“3/12”、“3/12”的atoi,都应该变成3;atof("3.14秒")应该变成3.14;atoi("-99score")应该变成-99。Python当然有atoi和atof函数,它们的行为与atoi和atof完全不同,与Python自己的int和float构造函数完全一样。我目前为止最好的,这真的很难看并且很难扩展到各种可用的浮点格式:value=1s=str(s).strip()ifs.startswith("-"):value=-1s=s[1:

go - Go 中的 strconv.Atoi(基本计算器)

我正在尝试用Go制作一个基本的加法计算器(这里完全是菜鸟),但每次我得到的输出都是0。这是代码:packagemainimport("fmt""strconv"//"flag""bufio""os")funcmain(){reader:=bufio.NewReader(os.Stdin)fmt.Print("What'sthefirstnumberyouwanttoadd?:")firstnumber,_:=reader.ReadString('\n')fmt.Print("What'sthesecondnumberyouwanttoadd?:")secondnumber,_:=rea

input - 如何在 Go 中使用 strconv.Atoi() 方法?

我正在尝试在这个小程序中获取用户输入。我已经尝试使用strconv.Atoi()方法以多种方式执行此操作(我的输入显然是一个字符串,我正在尝试将其转换为整数)。这是我的第一次尝试:packagemainimport("fmt""strconv")funcmain(){//fmt.Println(strconv.Itoa)fmt.Println("Saysomething,innumbers.")varinputstrstringfmt.Scanln("%s",&inputstr)input:=strconv.Atoi(inputstr)output:=(input*2)outputst

c - atoi 从定义的索引将字符串转换为 char

假设我有charx[3]="123";并且我只想转换char数组的索引1和索引2"23",我可以通过atoi来完成吗?我知道我可以通过charz[2];z[0]=x[1];z[1]=x[2];atoi(z);但这不是我要的。 最佳答案 你可以这样做charx[4];inti;strcpy(x,"123");i=atoi(x+1);因为x是指向char的指针,所以x+1是指向下一个char的指针。如果您尝试使用打印printf("%s",x+1);您将得到23作为输出。请注意,尽管您需要将char数组的长度声明为比其中的字符数多1-以

c atoi() 用于 linux 上的宽字符?

在Linux上是否有一个catoi()等价于宽字符?我可以为MS(wtoi)找到一些东西,但我可以在标准Linux库中找到任何东西。 最佳答案 您可以使用wcstol将宽字符串转换为整数值。 关于catoi()用于linux上的宽字符?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5068972/

c++ - 喜欢 atoi 但要漂浮

有没有类似atoi的函数将字符串转换为float而不是整数? 最佳答案 atof()(或std::atof()谈论C++-谢谢jons34yp) 关于c++-喜欢atoi但要漂浮,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5017001/

c++ - atoi() 用于 int128_t 类型

如何使用argvint128_t的值支持?我知道atoi()和公开的函数系列但不知何故我找不到int128_t固定宽度整数。这可能是因为这个type不受c或c++标准的支持,但是我有什么办法可以使这段代码工作吗?#includeintmain(intargc,char**argv){__int128_tvalue=atoint128_t(argv[1]);}几乎所有发布的答案对我来说都足够好,但我选择的是我当前代码的直接解决方案,所以也请查看其他答案。 最佳答案 这是一个简单的实现方法:__int128_tatoint128_t(c

C++ 将字符串转换为 int 的最有效方法(比 atoi 更快)

正如标题中提到的,我正在寻找比atoi更能提供性能的东西。目前,我知道最快的方法是atoi(mystring.c_str())最后,我更喜欢不依赖Boost的解决方案。有没有人有很好的性能技巧来做到这一点?附加信息:int不会超过20亿,总是正数,字符串中没有小数位。 最佳答案 我尝试了使用查找表的解决方案,但发现它们充满了问题,而且实际上速度不是很快。结果证明,最快的解决方案是最没有想象力的:intfast_atoi(constchar*str){intval=0;while(*str){val=val*10+(*str++-'0

c++ - 如何判断 c 函数 atoi 是否失败或是否是一串零?

当使用函数atoi(或strtol或类似的函数)时,如何判断整数转换是否失败或C字符串被转换的是0?对于我正在做的事情,0是一个可接受的值,并且正在转换的C字符串可能包含任意数量的0。它也可能有前导空格。 最佳答案 正确的函数(只要你坚持使用C风格的函数)是strtol,转换代码可能如下所示constchar*number="10";/*forexample*/char*end;longvalue=strtol(number,&end,10);if(end==number||*end!='\0'||errno==ERANGE)/*E

c++ - 相当于atoi

是否有一个函数可以替换c++中的atoi。我做了一些研究并没有找到任何可以替代它的东西,唯一的解决方案是使用cstdlib或自己实现它 最佳答案 如果你不想使用Boost,C++11添加了std::stoi对于字符串。所有类型都有类似的方法。std::strings="123"intnum=std::stoi(s);与atoi不同,如果无法进行转换,则为invalid_argument抛出异常。此外,如果值超出int的范围,out_of_range抛出异常。 关于c++-相当于atoi,