strtok()和strtok_S()用法

strtok()头文件貌似在 《string.h》 不在stdlib.h

string.h 是c库,string是C++ku

<string.h>
<string.h>是C版本的头文件,包含比如strcpy、strcat之类的字符串处理函数。
<cstring>
在C++标准化(1998年)过程中,为了兼容以前,标准化组织将所有这些文件都进行了新的定义,加入到了标准库中,加入后的文件名就新增了一个"c"前缀并且去掉了.h的后缀名,所以string.h头文件成了cstring头文件。但是其实现却是相同的或是兼容以前的,这就是<cstring>的来源,不要觉得又多了一个东西。相当于标准库组织给它盖了个章,说“你也是我的标准程序库的一份子了”。
<string>
<string>是C++标准定义的头文件,它定义了一个string的字符串类,里面包含了string类的各种操作,如s.size(), s.erase(), s.insert()等。但<string>又包含了老的C版本的字符串操作如strcpy、strcat等,这就相当于,在<string>的文件中除了定义自己的string类之外,还加了一个#include<string.h>一句包含了C版本的字符串操作。

+++++++++++++++++++++

// #define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
//#include <string.h>
#define INFO 50
int main()
{
	
	char buffer[INFO] = "fred,male 25,Jonh male 62,ANNN female 16";
	char* buf1;
	char* buf2;
	char* buf3;
	char* buf4;
	char* buf5;
	char* buf6;
	char* buf7;


	char* buff;
	char* delim=" ";
	buf1 = strtok_s(buffer, delim,&buf2);
	printf("%s\n", buffer);
	printf("%s\n", buf1);
	printf("%s\n", buf2);
	buf2 = strtok_s(buf2, delim,&buf3);
	printf("%s\n", buf2);
	printf("%s\n", buf3);
	buf3 = strtok_s(buf3, delim,&buf4);
	printf("%s\n", buf3);
	printf("%s\n", buf4);
	buf4 = strtok_s(buf4, delim,&buf5);
	printf("%s\n", buf4);
	printf("%s\n", buf5);
	buf5 = strtok_s(buf5, delim,&buf6);
	printf("%s\n", buf5);
	printf("%s\n", buf6);
	buf6 = strtok_s(buf6, delim,&buf7);
	printf("%s\n", buf6);
	printf("%s\n", buf7);

	printf("+++++++++++++++++++++++++++");
	

	printf("%s\n", buffer);
	printf("%s\n", buf1);
	printf("%s\n", buf2);
	printf("%s\n", buf3);
	printf("%s\n", buf4);
	printf("%s\n", buf5);
	printf("%s\n", buf6);
	printf("%s\n", buf7);
	

		/*char szOrbits[] = "365.24 29.53";
		char* pEnd;
		double d1, d2;
		d1 = strtod(szOrbits, &pEnd);
		d2 = strtod(pEnd, NULL);
		printf("月球每年绕地球运行 %.2f 周。\n", d1 / d2);*/
		system("pause");
		return 0;
	
}


发布了72 篇原创文章 · 获赞 31 · 访问量 14万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览