strtok/atoi/atof/atol函数用法 详解

 

  • char * strtok(char* str, char* delim)
    • str 不能是const类型,因为此方法 会导致 原字符串的修改
    • delim 中 每一个字符 都为 分隔符,而不支持 " 分割串 "的概念
    • 分割本质:匹配到后,将char* 位置字符替换为 \0
    • 值得注意:
      • 在第一次调用时,strtok()必须给予参数 s 字符串
      • 往后的调用则是将参数s 设置为NULL,每次调用成功则 返回 指向被分割出片段的指针
    • 调用失败,则返回NULL

 

  • 案例:分割 qq邮箱 号码
 1 #include <stdio.h>
 2 #include <string.h>
 3 int main()
 4 {
 5     char arr[] = "[email protected]";
 6     char * p = strtok(arr, "@");
 7     //delim中每一个字符都是分隔符
 8     while (NULL != p) {
 9         printf("%s\t",p);
10         p = strtok(NULL, ".");
11     }
12
13     system("pause");
14 }
  • 说明:
    • 第 8 行:判断是否分割到 或 判断字符串是否结束
    • 第 10 行:第2,3,,次调用时第一个参数为NULL,从之前切割剩下的字符串中查找 delim

 

  • vs 2015 下的调试

 

 

 


 

 

字符串转数字的 函数

  • atoi(char*)   char* -> int
  • atof(char*)   char* -> double
  • atol(char*)   char* -> long
  • 转换条件:
    • 跳过前面的空格,从 正负号读取
    • 数据前面不能有字符串,后面可以有 如  ”       -123abc“,“           -1” 可以转化;“abc    123” 不可以
    • 头文件 <string.h>

 

猜你喜欢

转载自www.cnblogs.com/guoyujiang/p/12299880.html