文字列を解析するためにstrtok()関数を使いたいと思います。返されたトークンに値のコピーを作成したいと思います(この関数から返されたトークンはポインタです)。strtok()トークンの値を格納していますか?
私のAIMは、基本的に、各トークンのアドレスに値のコピーを保持する文字列の配列を指すポインタを作成することです。私のコードは、これまでこれを試してみました(そして失敗しています)。(また、トークンが3文字分のスペースを十分に確保できるようにします。
(私は文字列を分割する方法の私の方法を変更することに興味がないんだNOTE - と私はstrtokはする欠点がある知っています)
char words[] = "red, dry, wet, gut"; // this is the input string
char* words_split[100];
char token[3]; // creates space for a token to hold up to 3 characters (?)
int count = 0;
char* k = strtok(words, ","); // the naming of k here is arbitrary
while (k != NULL) {
k = strtok(NULL, ",");
token[0] = *k; // I'm aware the 0 here is wrong, but I don't know what it should be
words_split[count] = token;
count++;
}
そして、私のことができるようにしたいのですがwords_splitから個々の要素、すなわち赤のそれぞれにアクセスします。
C++では文字列を分割するために 'strtok()'を使用しない方がよいでしょう。 – user0042
あなたの質問: 'strncpy()'を使ってトークンの値をコピーする必要があります。 – user0042
@ user0042それはおそらく最善の方法ではないことに気付いています。もう少しstrncpy()を使う方法を説明できますか?どこでコードの中でそれを配置するのでしょうか? –