gpt4 book ai didi

c - 在C中解析字符串

转载 作者:行者123 更新时间:2023-11-30 14:26:50 24 4
gpt4 key购买 nike

我需要解析我的字符串,但我的分隔符都是除 a-z 和 A-Z 之外的所有字符。我怎样才能做到这一点?

我想到了 strtok,但我必须将所有字符写为分隔符,而且它会太长。示例字符串:

Ax'cda2hsa+AsF(f/a as

需要拆分为: "Ax""cda""hsa""AsF""f""a""as"

C 库中是否有解析函数可以将所有分隔符写为间隔?

最佳答案

如果您不想执行 regex(3),您可以直接遍历字符串并自行执行此操作

#include <stdio.h>
#include <string.h>

int main(int ac, char *av[]) {
char string[] = " Ax'cda2hsa+AsF(f/a as";
int i,idx,len;
len = strlen(string);
#define MAX_SPLIT 256
#define MAX_SPLIT_MASK (MAX_SPLIT - 1)
char buf[MAX_SPLIT];
for (idx = 0, i=0;i<len;i++) {
char c = string[i];
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <='Z')) {
buf[idx++ & MAX_SPLIT_MASK] = c;
} else {
buf[idx++ & MAX_SPLIT_MASK] = '\0';
if (idx > 1)
printf("%s\n",buf);
idx = 0;
}
}
if (idx > 1) {
buf[idx++ & MAX_SPLIT_MASK] = '\0';
printf("%s\n",buf);
}
#undef MAX_SPLIT
#undef MAX_SPLIT_MASK

return 0;
}

关于c - 在C中解析字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8462804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com