linux c字符串转数字

2018-06-14 10:56:07
#字符串转int型
int atoi(const char *str);
//等同于strtol(str, NULL, 10),只是atoi不检测错误

#字符串转long型
long int atol(const char *str);

转换失败返回0。

long int strtol(const char *str, char **endptr, int base);

unsigned long int strtoul(const char *str, char **endptr, int base);

把参数 str 所指向的字符串根据给定的 base 转换为一个(无符号)长整数,base 必须介于 2 和 36(包含)之间,或者是特殊值0。

如果base 为0, 那么默认为10进制,如果 0x 或 0X 开头的则为16进制,0开头的则为8进制。

如果 endptr 不为NULL,那么 *endptr 将会存储str中第一个不为数字的地址。

例子

#define _GNU_SOURCE
#include <sched.h>
#include <sys/types.h>  /* Type definitions used by many programs */
#include <stdio.h>      /* Standard I/O functions */
#include <stdlib.h>
#include <unistd.h>     /* Prototypes for many system calls */
#include <errno.h>      /* Declares errno and defines error constants */
#include <string.h>     /* Commonly used string-handling functions */

int main(int argc, char *argv[]){
    char *tmp_1 = "12ab";
    char *tmp_2 = "0xff";
    char *tmp_3 = "011";
    char *tmp_4 = "0011";
    
    int a = atoi(tmp_1);
    int b = strtol(tmp_2, NULL, 0);
    int c = strtol(tmp_2, NULL, 16);
    int d = strtol(tmp_3, NULL, 0);
    int e = strtol(tmp_3, NULL, 8);
    int f = strtol(tmp_4, NULL, 2);
    
    printf("%d %d %d %d %d %d\n", a, b, c, d, e, f);
}
[root@localhost c]# ./a.out 
12 255 255 9 9 3


©著作权归作者所有
收藏
推荐阅读
  • c标准库 string.h

    库变量size_t 无符号整形,通常为sizeof,strlen的结果。库宏命令NULL 空指针常量。库函数size_t strlen(const char *s); 计算字符串长度。char *st...

  • linux c预处理器

    #define定义明显常量(符号常量), &nbsp;定义宏命令,定义后,编译器在预处理阶段就会直接替换值,所以一些关系到运算符优先级的尽量多的使用括号。#include&lt;stdio.h&gt;...

  • linux c按位运算符

    按位取反:~0变成1,1变成0。按位与:&amp;两边都为1的为1,其他为0。按位或:|只要有一方为1的就为1,其他为0。按位异或:^一方为0,一方为1的为1,其他为0例子#include&lt;st...

  • linux c其他复杂的声明以及typedef

    先了解下优先级,[]和()的优先级相同,他们比*的优先级高,结合是从左往右。int * days[5]days是数组,包含5个元素(int型指针)int (* days)[5]days是指针,指向一个...

  • linux c结构体、联合、枚举

    结构体可以用来表示复杂的数据结构,提高表示数据的能力,让你能创造新的形式。//定义结构体 struct person { char name[10]; int age; }; //定...

  • nginx模块 ngx_http_headers_module

    ngx_http_headers_module 模块是用来增加 Expires 和 Cache-control,或者是任意的响应头。Syntax: add_header name value [alw...

  • nginx模块 ngx_http_gunzip_module、ngx_http_gzip_module、ngx_http_gzip_static_module

    ngx_http_gunzip_module 模块将文件解压缩后并在响应头加上 "Content-Encoding: gzip" 返回给客户端。为了解决客户端不支持gzip压缩。编译的时候带上 --w...

  • nginx模块 ngx_http_flv_module、ngx_http_mp4_module

    ngx_http_flv_module模块提供了对 flv 视频的伪流支持。编译的时候带上 --with-http_flv_module。它会根据指定的 start 参数来指定跳过多少字节,并在返回数...

  • nginx模块 ngx_http_fastcgi_module

    ngx_http_fastcgi_module 模块使得nginx可以与 fastcgi 服务器通信。比如目前要使得 nginx 支持 php 就得使用 fastcgi技术,在服务器上装上 nginx...

  • nginx模块 ngx_http_autoindex_module

    ngx_http_autoindex_module 模块可以将uri以 / 结尾时,列出里面的文件和目录。Syntax: autoindex on | off; Default: autoindex ...

简介
天降大任于斯人也,必先苦其心志。