最終的な答え:
を探していlen - (temp1 - temp)ます。最初の部分の長さは ですtemp1 - temp。文字列全体の長さからそれを差し引いて、残りの部分の長さを取得します。
より長い答え:
(これstrlenは、適切なテキストメッセージでのみ機能する場合でも、例で使用したものです)入力の最後の部分の長さに\0単純に使用できる文字が見つかるまで続きます。strlen(temp1)2 回呼び出すとパフォーマンスが低下することが本当に心配な場合はstrlen(本当に?)、 を使用できますlen - (temp1 - temp)。
入力の最初の部分の長さに関心がある場合にのみ、ポインターの減算を行う必要があります。
\0非終端位置に含まれるバイナリ配列を操作する場合は、コードでまったく使用できません。strlenただし、入力全体の長さを指定する方法が必要です。これを整数変数に入れるか、長さ計算関数に特定の区切り文字を入れます。
長さの整数変数がある場合、入力の最初の部分の長さはポインター減算によって取得されるため、行う必要があるのはlen - (temp1 - temp).
長さを計算する関数がある場合は、単にtemp1引数として呼び出します。
PSstrstr : NULLを返すかどうかを確認することを忘れないでください(ちなみに、バッファ内にstrstrバイナリデータがある場合は使用できません)\0