ホームページ  >  記事  >  バックエンド開発  >  文字列を表す文字配列についての考慮事項は何ですか?

文字列を表す文字配列についての考慮事項は何ですか?

青灯夜游
青灯夜游オリジナル
2020-07-29 15:34:583407ブラウズ

注: 1. 文字の格納に長さが指定されていない文字配列が使用され、ターミネータが指定されていない場合、これは文字列ではありません。 2. 文字配列の途中に数字の0または'\0'がある場合、文字列出力関数を使用すると0の手前で終了し、0以降は出力されません。

文字列を表す文字配列についての考慮事項は何ですか?

C 言語には C 文字列データ型はありません。代わりに、文字配列を使用して文字列をシミュレートします。文字列は '\0' で終わります。 、つまり 0. シンボルです。

次の点に注意してください:

1. 文字を格納するために指定されていない長さの文字配列が使用され、終了文字が指定されていない場合、これは文字列ではありません。

例: char buff1[ ]={'a','b','c'}; printf("%s",buff1) で印刷すると、その後に文字化けの文字列が表示されます。 abc. abc の後の場合 文字の後に数字 0 または '\0' が続く場合、これは次の形式で通常どおり出力できる文字列です: char buff[] = {'a','b' ,'c',0} または char buff[ ] = { 'a','b','c','\0'}。

2. 指定された長さの文字配列を使用して文字列を初期化する場合、文字数が指定された長さより少ない場合、形式は次のようになります: char buff[100] = { 'a',' b','c' } の場合、これは文字列です。

この場合の文字配列は、残りの未指定の文字をデフォルトで 0 に設定するため、ターミネータがあることと同じであり、この文字配列を出力できます。 Function

ただし、初期化せずに指定したサイズの配列を宣言し、終了文字 0 を指定せずに文字を代入すると、文字列番号を使用して出力すると文字化けします。関数であり、文字列ではありません。

そのため、文字配列を初期化するときに、char buff2[100]={0} の形式で 0 に設定することがよくあります。

3. 文字配列の途中に数字の 0 または '\0' がある場合、文字列出力関数を使用すると 0 より前で終了し、0 以降は出力されません。

推奨: 「c 言語チュートリアル

以上が文字列を表す文字配列についての考慮事項は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。