13.字符串形式的数字转数值类型

复制代码
#include <stdio.h>
#include <stdlib.h>
int  main()
{
   char * spt = "    1100100.1111end....";
   printf("将字符串%s转成数值类型:====2int:%d====2long:%ld====2double:%f\n", spt, atoi(spt), atol(spt), atof(spt) );
   /*
     1.int atoi(const char *nptr)
     2.long int atol(const char *nptr)
     3.double atof(const char *nptr)
     注意事项:1.函数会扫描参数 nptr字符串,会跳过前面的空白字符(例如空格,tab缩进)
             2.如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回 0
             3.该函数要求被转换的字符串是按十进制数理解的
   */
   char *endpt;
   long int l1 = strtol(spt,&endpt,2);
   printf("原字符串为:%s====long:%ld====剩余的:%s\n", spt ,l1 ,endpt );
   /*
     1.long int strtol(const char *nptr,char **endptr,int base);
     2.unsigned long int strtoul(const char *nptr,char **endptr,int base);
     3.double strtod(const char *nptr,char **endptr,int base);
     参数1:指定被扫描的字符串
     参数2:endptr是一个传出参数,函数返回时指向后面未被识别的第一个字符。
         例如 char *pos; 
             strtol("123abc", &pos, 10);
             strtol返回123
             pos指向字符串中的字母a。
         如果字符串开头没有可识别的整数,
         例如char *pos;
         strtol("ABCabc", &pos, 10);
         则strtol返回0,pos指向字符串开头,可以据此判断这种出错的情况,而这是atoi处理不了的
     参数3:不仅可以识别十进制整数,还可以识别其它进制的整数,取决于base参数,
         比如 strtol("0XDEADbeE~~", NULL, 16)
         返回0xdeadbee的值,s
         trtol("0777~~", NULL, 8)返回0777的值。    
   */
 
   return 0;
}
复制代码

 

posted @   学而不思则罔!  阅读(255)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示