s
がヌル終了していない場合、strlen(const char *s)
が定義されていますか?そうであれば、何が返されますか?nullで終了しない文字列のstrlen()?
答えて
いいえ、定義されていません。
また、悪魔があなたの鼻を飛ばす原因にもなります。 http://catb.org/jargon/html/N/nasal-demons.html –
これは私の痛む鼻孔を説明しています。 –
これは定義されていません。それは何かが起こる可能性がある、プログラムがクラッシュする可能性が高いことを意味する未定義の動作を引き起こします。
常に定義されています。
"文字列"の長さがnullになったバイトに達するまで返します。これはバッファオーバーフローを引き起こす可能性があるため、悪い考えです。
いいえ、定義されていません。 mallocまたはスタック/ヒープのいずれかを使用して、文字列に割り当てられた領域を超えて移動を開始すると、結果は厳密には定義されません。 –
C99標準から:
はstrlen関数はnull文字を終了 の前の文字の 数を返します。
結果が未定義であることを意味するヌル文字がない場合。
実際には、bad thingsが発生します。
strlen()は、NULLで終了する文字列でのみ有効です(何か有用です)。それ以外のものを渡すと完全に定義されていない結果が得られます。運がよけれ場合は、クラッシュを引き起こすことはありません:)
訂正、運が良ければクラッシュします。あなたはこのタイプのエラーが気付かれないようにしたくないでしょう:-P。 –
をあなたの文字列はNUL終了していない場合には、それが1つを見つけるまで、関数は探し続けるだろう。
あなたが運が良ければ、プログラムがクラッシュする可能性があります。
あなたが幸運でない場合、あなたはそれに「予想外」の値の多くで、戻って大きな予想以上の長さを取得します。
男性3 strcspn
size_tのstrcspn(CONSTのchar * sで、CONSTのchar *拒否);
コロンで区切られた文字列の長さ:
size_t len = strcspn(str, ":");
カンマで区切られた文字列の長さ:
size_t len = strcspn(str, ",");
タブ区切りの文字列の長さ:
size_t len = strcspn(str, "\t");
- 1. Perl NULLで終了する文字列
- 2. DllImport nullで終了した文字列を返すAccessViolationException
- 3. Javaネイティブコード文字列終了
- 4. Crystal Reportsの終了しない文字列定数
- 5. 非ヌル終了C文字列を終了C文字列に変換する最もきれいな方法
- 6. nullポインタで途中でchar [] - >文字列変換を終了します
- 7. Newtonsoft.Json.JsonReaderException:未終了文字列です。
- 8. 2つ以上の文字列のstrlen?
- 9. 未終了の文字列リテラルエラー
- 10. ヌルで終了する2文字の文字列
- 11. 終了文字列定数スクリプトエラー
- 12. ダブルNULLで終わる文字列のリストを返します
- 13. Delphi - NULL終端文字
- 14. null終端文字ポインタ
- 15. Golang:select文が終了しないときに終了する
- 16. 最小文字長、strlen?
- 17. SyntaxError:終了文字列リテラルエラー奇妙なエラー
- 18. strlen()はヌルターミネータの文字列countを返します。
- 19. 文字列型(価値の「重力」で「終了」)
- 20. char配列をCの終了文字で
- 21. C:Eclipse/gdbとNullで終わる文字列
- 22. System.Text.Encoding.Unicode.GetStringからnullで終わる文字列を取得する
- 23. Org.json.JSONException:文字列で終端されていない文字列1834
- 24. 私は文字列リテラルエラーを終了しません
- 25. MVC3終了文字列定数構文エラー
- 26. C++ str :: stringをヌル終了のない文字配列にコピーする
- 27. 文字列の正規表現の開始/文字列メタ文字の終了のニーモニックチップ
- 28. std :: string :: c_str()は常にNULLで終了する文字列を返しますか?
- 29. ListViewで文字列配列を設定すると強制終了します
- 30. PHP - なぜcount()が文字列のstrlen()のように動作しないのですか?
自問してください: strlen()は、ヌル終了していない場合、文字列の終わりをどのように知るべきですか? – DevSolar
技術的に言えば、NUL終止符はC文字列の一部であると定義されているため、NUL終止符ではないC文字列は存在しません:) – fredoverflow