如何在 c 中标记这样的字符串:
char str1[] = " property :: content | label ";
char str2[] = "property::content";
char str3[] = "content";
[编辑]
我试过以下方法:
char str[] = " property :: content | label ";
char *property, *content, *label;
property = strtok(str, "::");
content = strtok(NULL, "|");
label = strtok(NULL, "|");
printf ("%s %s %s\n", property, content, label);
但它根据字符拆分字符串,因此它适用于用于分隔标签的管道字符。然而,“::”分隔符是一个字符串,而不是一个字符。我不知道如何处理它。
[编辑 2]
我也有这个代码:
char sentence [] = "property :: content | label";
char property [30];
char content [30];
char label [30];
sscanf (sentence, "%s :: %s | %s", property, content, label);
printf ("<span property=\"%s\" content=\"%s\">%s</span>\n", property, content, label);
我只是想知道如何动态设置每个字符数组的大小......
谢谢。