strtok的用法
函数原型:char *strtok(char *s, char *delim);
函数功能:把字符串s按照字符串delim进行分割,然后返回分割的结果。
函数使用说:
1.strtok函数的实质上的处理是,strtok在s中查找包含在delim中的字符并用NULL(’\0′)来替换,直到找遍整个字符串。这句话有两层含义:(1)每次调用strtok函数只能获得一个分割单位。(2)要获得所有的分割单元必须反复调用strtok函数。
2.strtok函数以后的调用时的需用NULL来替换s.
3.形参s(要分割的字符串)对应的变量应用char s[]=”….”形式,而不能用char *s=”….”形式
#include <stdio.h>
#include <string.h>
void main()
{
char buf[]=”Golden Global View”;
char* token = strtok( buf, ” “);
while( token != NULL )
{
printf( ”%s “, token );
token = strtok( NULL, ” “);
}
return 0;
}
其结果为:
Golden
Global
View
其中第3条不知为何,我的理解是char *s 中的s保存的是字符串的首地址,它在内存中所分配的内存是连续的,但是超过字符串的长度后,其内存中的内容不可知;而char s[],它在内存中的分配也是连续的,但是超过字符串的长度后,其内存中的内容全部为'/0'。
例如
#include <iostream>
using namespace std;
int main()
{
char *temp = "hewei";
char Parms[6] = "hewei";
int len = strlen(temp);
int Temp_len = strlen(Parms);
for(int i = 0; i< strlen(temp); i++)
{
cout << temp[i] << " " << Parms[i] << endl;
}
return 0;
}
其调试结果:
+ temp 0x00417800 "hewei" char *
Parms[8] -52 char
+ &Parms[0] 0x0012ff4c "hewei" char *
+ &Parms[1] 0x0012ff4d "ewei" char *
+ &Parms[2] 0x0012ff4e "wei" char *
+ &Parms[3] 0x0012ff4f "ei" char *
+ &Parms[4] 0x0012ff50 "i" char *
+ &Parms[5] 0x0012ff51 "" char *
+ &Parms[6] 0x0012ff52 "烫烫烫烫烫" char *
+ &temp[3] 0x00417803 "ei" char *
+ &temp[4] 0x00417804 "i" char *
+ &temp[5] 0x00417805 "" char *
+ &temp[6] 0x00417806 "" char *
+ &temp[7] 0x00417807 "" char *
+ &temp[8] 0x00417808 "" char *
temp[6] 0 char
temp[7] 0 char
+ temp 0x00417800 "hewei" char *
分享到:
相关推荐
在C++编程语言中,对于字符的处理,可以通过使用C++ strtok来进行具体的操作。那么正确的应用方法我们将会在这篇文章中为大家详细介绍,希望能对大家有所帮助,提高实际程序开发效率。
主要介绍了C语言切割多层字符串的方法,说了strtok的弱点,使用strtok_r的方法
函数原型:char *strtok(char *s, const char *delim);Function:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。Description:strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串...
本文实例汇总了C++常用字符串分割方法,分享给大家供大家参考。具体分析如下: 我们在编程的时候经常会碰到字符串分割的问题,这里总结下,也方便我们以后查询使用。 一、用strtok函数进行字符串分割 原型: char *...
一、 C++的string的使用 3 1.1 C++ string简介 3 1.2 string的成员 3 1.2.1 append 3 1.2.2 assign 4 1.2.3 at 4 1.2.4 begin 5 1.2.5 c_str 5 1.2.6 capacity 5 1.2.7 clear 6 1.2.8 compare 6 1.2.9 copy 6 1.2.10...
strtok函数是字符串函数库中的一个函数,函数原型如下: char *strtok(char s[], const char *delim); 作用:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。 例如:”hello,hi:what?is!the....
一、 C++的string的使用 4 1.1 C++ string简介 4 1.2 string的成员 4 1.2.1 append 4 1.2.2 assign 5 1.2.3 at 5 1.2.4 begin 6 1.2.5 c_str 6 1.2.6 capacity 6 1.2.7 clear 7 1.2.8 compare 7 1.2.9 copy 7 1.2.10...
string是STL里的标准类,习惯了使用指针操作C的char *字符串,刚开始并不是很适应,主要原因是对string.h里的函数没有找到合适的C++替换方法,因此,对常用的sring.h里的函数替换说明如下: strcpy: str.substr() ...
命令行v2.1.0 适用于Arduino的便捷串行命令行... 如果输入字符串与命令匹配(第一个匹配),则将对其余参数使用char *调用附加的回调(应使用strtok进行解析)。 在版本2.1.0中添加了对历史记录的基本支持。 配置 该