c/c++函数 -strtol strtoll strtoul strtoull 使用注意项cc
说明
声明
功能:
返回值:
ERRORS:
注意:
封装:
bool stringToI32(const std::string &str, int32_t &val)
{long temp_val = 0;bool isOK = stringToL(str, temp_val);val = temp_val;return isOK && (temp_val >= -0x7fffffff && temp_val <= 0x7fffffff/*32bit整形的有效范围*/);
}bool stringToU32(const std::string &str, uint32_t &val)
{unsigned long temp_val = 0;bool isOK = stringToUL(str, temp_val);val = temp_val;return isOK && (temp_val <= 0xffffffff/*32bit无符号整形的有效范围*/);
}bool stringToI64(const std::string &str, int64_t &val)
{long long temp_val = 0;bool isOK = stringToLL(str, temp_val);val = temp_val;return isOK && (temp_val >= -0x7fffffffffffffff && temp_val <= 0x7fffffffffffffff/*64bit整形的有效范围*/);
}bool stringToU64(const std::string &str, uint64_t &val)
{unsigned long long temp_val = 0;bool isOK = stringToULL(str, temp_val);val = temp_val;return isOK && (temp_val <= 0xffffffffffffffff/*64bit无符号整形的有效范围*/);
}bool stringToL(const std::string &str, long &val)
{bool isOK = false;const char *nptr = str.c_str();char *endptr = NULL;errno = 0;val = strtol(nptr, &endptr, 10);//error ocurif ((errno == ERANGE && (val == LONG_MAX || val == LONG_MIN))|| (errno != 0 && val == 0)){}//no digit findelse if (endptr == nptr){}else if (*endptr != '\0'){// printf("Further characters after number: %s\n", endptr);}else{isOK = true;}return isOK;
}bool stringToLL(const std::string &str, long long &val)
{bool isOK = false;const char *nptr = str.c_str();char *endptr = NULL;errno = 0;val = strtoll(nptr, &endptr, 10);//error ocurif ((errno == ERANGE && (val == LLONG_MAX || val == LLONG_MIN))|| (errno != 0 && val == 0)){}//no digit findelse if (endptr == nptr){}else if (*endptr != '\0'){// printf("Further characters after number: %s\n", endptr);}else{isOK = true;}return isOK;
}bool stringToUL(const std::string &str, unsigned long &val)
{bool isOK = false;const char *nptr = str.c_str();char *endptr = NULL;errno = 0;val = strtoul(nptr, &endptr, 10);//error ocurif ((errno == ERANGE && (val == ULONG_MAX))|| (errno != 0 && val == 0)){}//no digit findelse if (endptr == nptr){}else if (*endptr != '\0'){// printf("Further characters after number: %s\n", endptr);}else{isOK = true;}return isOK;
}bool stringToULL(const std::string &str, unsigned long long &val)
{bool isOK = false;const char *nptr = str.c_str();char *endptr = NULL;errno = 0;val = strtoull(nptr, &endptr, 10);//error ocurif ((errno == ERANGE && (val == ULLONG_MAX))|| (errno != 0 && val == 0)){}//no digit findelse if (endptr == nptr){}else if (*endptr != '\0'){// printf("Further characters after number: %s\n", endptr);}else{isOK = true;}return isOK;
}
c/c++函数 -strtol strtoll strtoul strtoull 使用注意项cc相关推荐
- c/c++函数 -strtol strtoll strtoul strtoull解读
在项目开发时,字符串跟整形的转换是普遍需求的一个功能,在c/c++中常用的几个函数包括strtol strtoll strtoul strtoull. 目前我们的项目里面进行转换的时候都是直接调用, ...
- strtol strtoll strtoul strtoull应用
在项目开发时,字符串跟整形的转换是普遍需求的一个功能,在c/c++中常用的几个函数包括 strtol strtoll strtoul strtoull. 目前我们的项目里面进行转换的时候都是直接调用, ...
- strtol,strtoll,strtoul, strtoull字符串转化成数字
名字: strtol, strtoll, strtoul, strtoull convert a string to a (signed, unsigned ) long integer string ...
- 函数atof,atoi,atol,strtod,strtol,strtoul 描述
函数atof,atoi,atol,strtod,strtol,strtoul atof(将字串转换成浮点型数) 相关函数 atoi,atol,strtod,strtol,strtoul 表头文件 # ...
- 11-字符串转换函数(strtod、strtol、strtoul)
字符串转换函数包含在通用工具函数库<strlib.h>中 一:函数strtod(string to double) double strtod(const char *nPtr,char ...
- 函数atof,atoi,atol,strtod,strtol,strtoul
在做项目过程中经常需要把字符串转换成整形数,这时候就需要用到下面几种函数:函数atof,atoi,atol,strtod,strtol,strtoul 函数说明是:该函数会扫描参数中的字符串,跳过前面 ...
- linux c 数字字符串互转 相关函数 atoi、atof、atol、atrtod、strtol、strtoul
一.atoi函数(将字符串转换成整型数) 定义函数 int atoi(const char * nptr); 函数说明 atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负 ...
- toi,atol,strtod,strtol,strtoul实现类型转换
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://ivanvic.blogbus.com/logs/1920125.html atof(将字符串转换成浮点型数) 相关函数 ...
- atoi,atol,strtod,strtol,strtoul实现类型转换
一.atoi C语言库函数名: atoi 功 能: 把字符串转换成整型数. 名字来源:array to integer 的缩写. 原型: int atoi(const char *nptr); 函数说 ...
最新文章
- windows服务搭建及命令总结
- [Swift通天遁地]七、数据与安全-(1)XML文档的创建和解析
- sqlite中的命令
- git Gui从服务器拉去项目
- oracle out of bounds,如何通过不具有ArrayIndexOutOfBoundsException的executeBatch获取生成的键?...
- 破解还原卡的方法总结
- 电子证件照尺寸怎样裁剪?怎么把照片裁剪成2寸?
- qml自定义控件:简易的带图标按钮
- “多模态视频人物识别”课程分享学习总结
- gird布局几种用法
- 发布pip项目(包含静态文件)遇到的坑
- 9.29 正睿提高6
- 使用JS进行日期计算
- 从零开始学统计 07 | 标准误差
- 计算机硬件配置一般看什么CPU,电脑配置怎么看好坏
- 读书笔记-天才和凡人
- 中国石油大学《大学英语(三)统考》第八套模拟题
- java彩票源码开源带界面,带系统
- 1204--Word Puzzles
- Python笔记:布尔类型,逻辑运算符