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[] = "123456789@qq.com";
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>
沉舟侧畔千帆过,病树前头万木春。