重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。
创新互联网站建设服务商,为中小企业提供成都网站设计、网站建设服务,网站设计,网站托管维护等一站式综合服务型公司,专业打造企业形象网站,让您在众多竞争对手中脱颖而出创新互联。
2、头文件: #include stdlib.h
3、它在Linux下的Vi编辑器能用
int atoi(const char *nptr) 函数会扫描参数 nptr字符串,会跳过前面的空白字符(例如空格,tab缩进)等。如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回 0 。特别注意,该函数要求被转换的字符串是按十进制数理解的。
扩展资料
范例:
1
#include stdlib.h
#include stdio.h
int main(void)
{
int n;
char *str = "12345.67";
n = atoi(str);
printf("string = %s integer =%d\n", str, n);
return 0;
}
执行结果
string = 12345.67 integer = 12345.000000
2
#include stdlib.h
#include stdio.h
int main()
{
char a[] = "-100" ;
char b[] = "123" ;
int c ;
c = atoi( a ) + atoi( b ) ;
printf("c = %d\n", c) ;
return 0;
}
执行结果
c = 23
参考资料来源:百度百科—atoi()
golang语言本身就是c的工具集,开发c的程序用到的大部分结构体,内存管理,携程等,golang基本都有,他只是在这个基础上又加了一些概念这里说一个很小的问题,就是字节数组转string的问题,网上大部分都是这样转的(包括google上):string(p[:]),这个转完了是有问题的,我们再来看一下string这个结构体:
struct String
{
byte* str;
intgo len;
};
这个结构体让我想起了nginx的string,他是这样定义的:
typedef struct {
size_t len;
u_char *data;
} ngx_str_t;
golang里边 string的概念其实不是以前遇到\0结尾的概念了,他其实就是一块连续的内存,首地址+长度,上面那样赋值,如果p里边有\0,他不会做处理这个时候,如果再对这个string做其他处理就可能出问题了,比如strconv.Atoi转成int就有错误,解决办法就是需要自己写一个正规的转换函数:
func byteString(p []byte) string {
for i := 0; i len(p); i++ {
if p[i] == 0 {
return string(p[0:i])
}
}
return string(p)
}
这样就不会出问题了
atoi (表示 alphanumeric to integer)是把字符串转换成整型数的一个函数。
函数原型:int atoi(const char *nptr);
参数 nptr为字符串指针
说明:
参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零。
包含在头文件stdlib.h中
实例:
#include stdlib.h
#include stdio.h
int main(void)
{
int n;
char *str = "12345.67";
n = atoi(str);
printf("int=%d\n",n);
return0;
}
结果输出:
int=12345
是的。
atoi函数在stdlib.h头文件中声明,它接受一个C风格字符串(const char*)作为参数,返回int,表示这个字符串所代表的十进制数。解析过程如下:
函数首先忽略字符串开始的空白字符,直到遇到第一个非空白字符,然后读入正/负号字符(可以没有)以及后面跟着的数字字符,并将它们解释为一个int类型的整数。
从这个解析过程可以看出atoi是可以解析负数的。
样例(摘自cplusplus点抗 ):
#include stdio.h /* printf, fgets */
#include stdlib.h /* atoi */
int main ()
{
int i;
char buffer[256];
printf ("Enter a number: ");
fgets (buffer, 256, stdin);
i = atoi (buffer);
printf ("The value entered is %d. Its double is %d.\n",i,i*2);
return 0;
}