[解決済み] C言語でstrtok()はどのように文字列をトークンに分割するのですか?
2022-03-06 09:54:56
質問
の仕組みについて教えてください。
strtok()
関数を使用します。マニュアルには、文字列をトークンに分割すると書いてあります。マニュアルを読んでも、実際に何をするのか理解できません。
にウォッチを追加しました。
str
と
*pch
の内容は、最初のwhileループが発生したときに動作しているかどうかを確認するために
str
は "これ" だけでした。以下の出力はどのように画面に表示されたでしょうか?
/* strtok example */
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] ="- This, a sample string.";
char * pch;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str," ,.-");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, " ,.-");
}
return 0;
}
出力します。
文字列を分割する "- This, a sample string." をトークンに分割します。 この a サンプル 文字列
どのように解決するのですか?
strtok()
つまり、区切り文字のいずれかから次の区切り文字までが1つのトークンとなります。あなたの場合、開始トークンは "-" から始まり、次のスペース " " で終わります。そして、次のトークンは " " から始まり、"," で終わります。ここで、出力として "This"を得ることができます。同様に、残りの文字列もスペースからスペースへとトークンに分割され、最終的に最後のトークンが "." で終わります。
関連
-
[解決済み】なぜか。"エラー: 配列型を持つ式への代入"
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] Javaで文字列を分割する方法
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】strcmpが機能しない
-
[解決済み】 `S_ISREG()` とは何ですか、そして何をするのですか?
-
[解決済み】エラー:イニシャライザー要素がロード時に計算可能でない
-
[解決済み] struct has no member named
-
[解決済み】ヒープ割り当てで初期化されていない値が作成された
-
[解決済み] char pointers: 'char*' から 'char' への無効な変換?
-
[解決済み】エラー:不明な型名'bool'
-
[解決済み] エラー: `itoa` はこのスコープで宣言されていません。
-
[解決済み】execvp: バッドアドレスエラー
-
[解決済み】strtok()関数の実装について