logo

C の Strsep() 関数

導入:

文字列 の重要な要素です プログラミング とのコミュニケーションが可能になるからです。 ユーザー、結果の表示、ファイルの読み取り 。これらは、データ入力および出力メカニズムの一種です。以来 文字列 私たちが作成するプログラムでは常に何らかの形で使用されるため、文字列とそれを処理する関数を効率的に処理することが重要です。

このチュートリアルでは、 strsep() メソッド

について見ていきます。 入力 そして 出力引数 のために strsep() 、 その 構文 そして 理論的な説明 、およびこれらの各引数に許可されるデータ型。

次に、コード スニペットとグラフィックを使用して文字列を断片化することで、学んだことを実践します。 strsep() メソッド これは実際の例で実証されています。

C 言語の Strsep() 関数構文:

 char *strsep(char **restrict stringp, const char *restrict delim); 

C の Strsep() 関数の説明:

  • を使用して分解されます strsep() 関数 、事前に決められた区切り文字で始まります。
  • によって指摘された 文字列入力 引数はこの関数によって分割され、それらの部分が結合されて、すべて NULL 文字で終わる新しい文字列が形成されます。
  • 新しい文字列はそれぞれ次の位置から始まります。 住所 出力ポインタによって与えられ、次の場所で終了します。 デリミタ によって指定される 私は共有します そして strsep() 区切り文字が見つかると、関数はそれを null 文字に置き換えて、新しい文字列の終わりを示します。
  • 文字列ポインタ 関数が呼び出しから戻ったときに区切り文字が検出された後、フラグメントの先頭に自動的に設定されます。の 文字列ポインタ これで、次の関数呼び出しで次のフラグメントを取得する準備が整いました。それまで strsep() 区切り文字が不足し、null ポインタが返されます。その結果、このプロセスは呼び出しごとに繰り返されます。

この関数は、区切り文字を null 文字に置き換えることにより、入力テキストを取り消し不能に変更することに注意することが重要です。の 「string.h」ヘッダー の定義が含まれています strsep() 関数 。これと他の文字列管理関数を使用するには、次のようにコードにこれを組み込む必要があります。

 #include 

C 言語の Strsep() 関数を使用して文字列を複数のフラグメントに分割する方法

この例では、次のフレーズが 「プログラミングを始めよう」 は文字列として作成され、その内容は strsep() 関数 。新しく作成された各文字列は、 コマンド端末 。が指す文字列 文字列 delim 入力引数で使用する区切り文字は次のとおりであるため、入力パラメータは単語ごとに分割されます。 スペース文字 (' ')

Javaの数値を文字列に変換

私たちは宣言します '罪' 文字列とテキスト 「プログラミングを始めよう」 そしてその 'in_Ptr' ポインタ の中に メイン機能 。の strsep() 関数の stringp 入力引数はこのポインタです。

として delim 入力引数 のために strsep() メソッド および指定された区切り文字に加えて、 '文字列デル' スペース文字を使用します。次に宣言します 'o_Ptr' ポインタ として使用されます strsep() の出力引数 。の printf() メソッド は、このポインタを入力引数として使用して、回復されたフラグメントをコマンド コンソールに表示します。

その後、供給してから、 文字列の 最初の引数として、 'in_Ptr' ポインタを 2 番目のパラメータとして指定し、 'o_Ptr' ポインタ 出力引数として、 strsep() 関数 。この呼び出しは内部で行われます while ループ エスケープ条件は、次の場合にこれ以上区切り文字がないことです。 strsep() が返す ヌルポインタ。

この例のコードは次のとおりです。

 #include #include int main() { char s_in[50] = 'Let's start programming '; char del[20] = ' '; char* in_Ptr = s_in; char* o_Ptr; while ((o_Ptr = strsep(&in_Ptr, del)) != NULL) { printf('%s
', o_Ptr); } return 0; } 

Strsep() を分割します '罪' 以下に示すように、文字列を単語ごとに毎回新しい文字列を生成し、コマンド コンソールの新しい行に表示します。

出力:

np ゼロ
 Let's start programming 

結論

この記事では、 strsep() 関数 で指定されている関数の 1 つ '文字列.h' ヘッダ。私たちはその理論的正当性について話しました。 構文、呼び出しテクニック 、 そして 手術 。さらに、各入力引数と出力引数が受け入れるデータの種類を示しました。