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);
各char配列のサイズを動的に設定するにはどうすればよいのでしょうか...
ありがとう。