下面就给大家讲解一下C语言中切割多层字符串的使用方法。常用的函数有strtok_r()
和strtok()
。
strtok_r()
使用方法
该方法是线程安全的字符串分割函数。需要注意的是,strtok_r()
除了是线程安全的之外,用法和一个另一个非线程安全的函数strtok()
是类似的。
strtok_r()
函数的基本用法
strtok_r()
函数的语法如下:
char *strtok_r(char *str, const char *delim, char **saveptr);
参数含义:
- str 是需要分割的字符串。
- delim 是分隔符,可以指定多个。
- saveptr 是一个指向指针的指针,用于存储第一次调用函数后剩余字符串的起始位置。用NULL的话将会自动保存,下次调用直接使用。
返回值:
执行完 result 是该函数返回值,也是分割出的字符串,其中字节数目最多是被分割的字符串的字节数,但是如果该字符串中存在连续的多个分隔符,那么只返回一个空字符串。
strtok_r()
函数的示例用法
我们来看一个简单的示例如下:
#include <stdio.h>
#include <string.h>
int main() {
char buf[] = "1|2|3|4|5";
char *delim = "|";
char *saved_ptr = NULL;
char *token = strtok_r(buf, delim, &saved_ptr);
while (token != NULL) {
printf("token: %s\n", token);
token = strtok_r(NULL, delim, &saved_ptr);
}
return 0;
}
输出结果为:
token: 1
token: 2
token: 3
token: 4
token: 5
strtok()
使用方法
strtok()
函数是一个非线程安全函数,其功能与strtok_r()
相同。 由于其不是线程安全的,因此应该优先使用strtok_r()
。
strtok()
函数的基本用法
strtok()
函数的语法如下:
char *strtok(char *str, const char *delim);
参数含义:
- str 是需要分割的字符串。
- delim 是分隔符,可以指定多个。
返回值:
执行完 result 是该函数返回值,也是分割出的字符串,其中字节数目最多是被分割的字符串的字节数,但是如果该字符串中存在连续的多个分隔符,那么只返回一个空字符串。
strtok()
函数的示例用法
我们来看一个简单的示例如下:
#include <stdio.h>
#include <string.h>
int main() {
char buf[] = "1|2|3|4|5";
char *delim = "|";
char *token = strtok(buf, delim);
while (token != NULL) {
printf("token: %s\n", token);
token = strtok(NULL, delim);
}
return 0;
}
输出结果为:
token: 1
token: 2
token: 3
token: 4
token: 5
上面的示例中,我们可以看到将字符串"1|2|3|4|5"以"|"为分割符进行了分割,并将每个子字符串输出到了标准输出。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言切割多层字符串(strtok_r strtok使用方法) - Python技术站