zoukankan      html  css  js  c++  java
  • 数字字符串转换成算数类型函数atoi(),分解字符串的函数strtok()的简单应用

    #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中包含的分割字符时(这里为空格),则会将该字符改为 字符
    返回值:
    从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;
    }
    }
    


  • 相关阅读:
    vanilla单词的意思
    快速排序实现
    python下载一些包出现time out的问题解决
    神经网络浅讲:从神经网络到深度学习
    神经网络基础知识
    TCP/IP
    查找机器学习相关数据集
    [数据治理]
    【算法】——LRU
    【大数据开发工程师】面试——HBase
  • 原文地址:https://www.cnblogs.com/zhubaohua-bupt/p/7182829.html
Copyright © 2011-2022 走看看