数字字符串转换成算数类型函数atoi(),分解字符串的函数strtok()的简单应用
2016-07-13 20:08
357 查看
#include <stdio.h> #include <string.h> #include<vector> #include<iostream> using namespace std; int main() { string buff ="55.5 22 6688 99 55"; char *pp=NULL; char *buf= (char*)buff.c_str();//string转换char* //char *ptr = strtok(buf, " ");//分解字符串的函数 第一个参数为 char* 字符串buf首地址,第二个为分割符,这里为空格。 第一次调用输入char* 字符串buf首地址。 //返回第一次被分割的字符串首地址。 /*strtok(char* s,const char* delim); 简介 当strtok()在参数s的字符串中发现分割符参数delim中包含的分割字符时(这里为空格),则会将该字符改为\0 字符 返回值: 从s开头开始的一个个被分割的串的首地址。当s中的字符查找到末尾时,返回NULL。 如果查找不到delim中的字符时,返回当前strtok的字符串的指针。 所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。*/ char *ptr = strtok_s(buf, " ",&pp);//strtok_s功能和strtok一样,只是把每次剩余的字符串放入第三个参数(这里为pp里),更安全。 double a[5]; int i=0; while(ptr) { a[i]=atof(ptr);//数字字符串转换成double类型:double //atoi()是数字字符串转换成int类型 cout<<"origin : "<<a[i]<<endl; i++; ptr = strtok_s((char *)NULL, " ",&pp);//以后每次调用 ,第一个参数输入(char *)NULL,在strtok_s()函数执行到char* 字符串buf的最后,返回NULL,循环结束。 //ptr = strtok((char *)NULL, " ");//以后每次调用 ,第一个参数输入(char *)NULL,在strtok()函数执行到char* 字符串buf的最后,返回NULL,循环结束。 } for(int i=0;i<5;i++) { cout<<"a[i]:"<<a[i]<<endl; } }
相关文章推荐
- opencv——角点检测
- Android Studio 中报错 程序包org.apache.http不存在 的解决方法
- RecyclerView 入门教程(超详细)
- 转换到 COFF 期间失败: 文件无效或损坏
- 北斗卫星分部
- 两种分布式锁实现方案
- WeX5的简单介绍及UI的简单讲解
- Linux C++ 开发常用工具,常用指令工作手册
- 5-5 有理数均值
- android stuido常见问题查询网址(此贴不定期更新)
- 【结论】升序逆序对
- unity3D引擎:2D游戏自动瞄准算法实现
- gcd
- javascript原理系列— new的原理
- 将 Web 应用性能提高十倍的10条建议
- 设计模式之c++实现(三)
- android自定义 数字键盘2
- Linux基础(9)文本处理三剑客之grep
- 转:理解 Linux 的硬链接与软链接
- windows apache开启url rewrite