56.【C语言】字符函数和字符串函数(strtok函数) 点我跳转
目录
56.【C语言】字符函数和字符串函数(strtok函数) 点我跳转
1.原文
2. 翻译
1.原文
原文链接: cplusplus的介绍 点我跳转
2. 翻译
函数
strtok
char * strtok ( char * str, const char * delimiters );
Split string into tokens机器翻译的结果:将字符串分割为标记
01.tokens
Split string into tokens这里出现了一个专业词汇:tokens
token n.标记,象征,代币
在这里指标记
"将字符串分割为标记"读起来感觉有点不通顺
解释1:
geeksforgeeks网站的Tokenizing a string in C++详细讲解了这句话的含义
翻译后的这句话指的是:将字符串标志化,即根据某些分隔符将字符串分割开
解释2:
在cplusplus介绍的strtok函数的参数中提到了
网站认为:token为大字符串拆分成的小字符串
这个函数的一系列调用(calls)将字符串分割为标记,标记由连续的字符序列(备注:存储在str指向的字符串中)组成,这些字符序列由delimiters中的任何字符来分割
在第一次调用中,这个函数期望将字符串(指首元素的地址)作为值传递给str
02.agument
这里出现了一个专业词汇:argument,不是争辩的意思
点我跳转至argument的解释
从jamiefosterscience网上可以了解到:An argument in computer science is a value that is passed to a function or procedure when it is called.
将值传给一个函数或者一个程序
因此翻译为:这个函数期望将字符串(指首元素的地址)作为值传递给str(就是传参)
字符串的第一个字符被用来作为扫描标记的起始位置,在随后的调用中,这个函数期望一个空指针并且使用最后一个标记之后的位置作为新的要扫描起始位置
为了确定一个标记的开始和结束,这个函数首先从起始位置开始扫描第一个不在分隔符(delimiter为指向分割符数组的并且由const修饰的字符指针,const char * delimiters )中的字符,然后从这个标记的开始位置扫描第一个包含在分隔符中的字符,这为标记的结束,这个扫描也会因遇到\0字符而停止
03.the terminating null character
指\0
查ASCII码表知道,其ASCII码值为00
结束标记会被自动替换为NULL字符(即\0),开始标记会被这个函数返回
当在调用函数时找到str指向的字符串的\0后,所有后续调用此函数(第一个参数为 null 指针)都会返回一个 null 指针
函数内部会保留上一次找到的最后一个标记的位置,以便在下一次调用时使用(特定的库实现不需要避免数据竞争)
参数
str:要截断的字符串,注意到这个字符串可以被修改拆分为小字符串;或者,可以指定一个空指针,这样以来,函数会继续从上一次成功调用该函数结束的地方开始扫描
delimiters:包含分隔符的字符串(备注:可以创建一个含分隔符的数组),这些字符在每次调用时可以不同
返回值
如果标记被找到,返回指向开始标记的一个指针;否则返回一个空指针
当扫描到字符串的末尾(即\0).一个空指针总是被返回