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