用c语言设计一个函数实现类似strtok的功能
时间: 2023-08-25 16:04:03 浏览: 172
好的,你可以使用C语言编写一个函数来实现类似于strtok的功能。下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
char* my_strtok(char* str, const char* delim) {
static char* token = NULL;
if (str != NULL) {
token = str;
}
if (token == NULL) {
return NULL;
}
char* p = token;
while (*p != '\0') {
if (strchr(delim, *p) != NULL) {
*p = '\0';
token = p + 1;
return token - 1;
}
p++;
}
if (*token == '\0') {
token = NULL;
return NULL;
}
token = NULL;
return p;
}
int main() {
char str[] = "Hello, World! This is a test.";
const char delim[] = " ,!";
char* token = my_strtok(str, delim);
while (token != NULL) {
printf("%s\n", token);
token = my_strtok(NULL, delim);
}
return 0;
}
```
这个示例代码中的`my_strtok`函数与`strtok`函数类似,接受两个参数:一个是要切分的字符串,另一个是分隔符字符串。函数会返回分隔后的子字符串,并在原字符串中使用`\0`替换分隔符。
在`main`函数中,我们使用了示例字符串"Hello, World! This is a test.",并以空格、逗号和感叹号作为分隔符。然后,使用`my_strtok`循环切分字符串,并打印切分后的子字符串。
你可以根据自己的需要修改这个函数,使其适应你的具体场景。希望对你有所帮助!
阅读全文