gpt4 book ai didi

c - 在 C 中标记字符串

转载 作者:行者123 更新时间:2023-12-01 13:25:45 25 4
gpt4 key购买 nike

你好,我想在 C 中标记一个字符串

以下是字符串。

{作业开始}{作业运行}{作业运行}{作业完成}

我想在 { 和 } 上标记化,以便我得到“Job Started”、“Job Running”和“Job Finished”

我也想将相同的定界符用作转义字符

{作业已开始}{作业\{ID1\}正在运行}{作业\{ID2\}正在运行}{作业已完成}

应该关注我

作业已启动,作业 {ID1} 正在运行,作业 {ID2} 正在运行,作业已完成。

我有指针气密的解决方案,但我想避免多次重复输入字符串。

任何建议。

最佳答案

您可以使用一个简单的有限状态机:

#include <stdio.h>

int main() {
char *src = "{Job Started}{Job \\{ID1\\} Running}{Job \\{ID2\\} Running}{Job Finished}";

char token[100] = {}, *dst = token, ch;

int state = 0;
while ((ch = *src++) != 0) {
switch (state) {
case 0:
if (ch == '{') state = 1;
break;
case 1:
switch (ch) {
case '}':
printf("token: %s\n", token);
dst = token;
*dst = 0;
state = 0;
break;
case '\\':
state = 2;
break;
default:
*dst++ = ch;
*dst = 0;
}
break;
case 2:
*dst++ = ch;
*dst = 0;
state = 1;
break;
}
}
}

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

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