请用c++写一个字符串分割函数
时间: 2023-02-06 11:28:26 浏览: 116
下面是一个使用 C 语言写的字符串分割函数的示例:
```
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
// 定义一个结构体用于表示分割后的子串
typedef struct {
char *str; // 子串的内容
int len; // 子串的长度
} substring;
// 定义一个函数用于分割字符串
// 参数 str 指向需要分割的字符串,参数 delim 指向分隔符字符串,参数 substrings 指向分割后的子串数组
// 函数返回分割后的子串数量
int split_string(char *str, char *delim, substring *substrings) {
// 定义一个指针变量 p 指向当前位置
char *p = str;
// 定义一个计数器 count 用于记录分割后的子串数量
int count = 0;
// 使用循环不断地分割字符串
while (1) {
// 在字符串中查找下一个分隔符
char *q = strstr(p, delim);
// 如果分隔符不存在,则表示已经分割完成
if (q == NULL) {
// 将剩余的字符串作为最后一个子串
substrings[count].str = p;
substrings[count].len = strlen(p);
// 返回子串数量
return count + 1;
}
// 否则将当前子串的内容和长度记录到数组中
substrings[count].str = p;
substrings[count].len = q - p;
// 将指针 p 移动到下一个子串的开头
p = q + strlen(delim);
// 增加子串计数器
count++;
阅读全文