例えば
チャーワード[] = { "!" 'H'、 'E'、 'L'、 'L'、 'O'、 '\ 0'}。
単語[0] | H |
単語[1] | E |
単語[2] | リットル |
単語[3] | リットル |
ワード[4] | インクルード |
単語[5] | ! |
単語[6] | \ 0 |
定義
- 文字列の最後には文字0の文字列です **
、異なって0または「\ 0」は同じである、しかし、および「0」、「0」、小数点48によって表される文字は、あります - 0ストリング終了フラグは、彼は、文字列の一部ではない
文字列0の長さを計算する際に含まれていません - ポインタまたは配列アクセス文字列の配列の形で
より多くのポインタの形であります - string.hの文字列処理関数がたくさんあります
の文字列
char * strの=「こんにちは」;
char型の単語は、[]「こんにちは」=。
チャーライン[10] =「こんにちは」。
文字列定数
- 「こんにちは」、コンパイラは、文字列に変換されます、配列の長さは6であり、ならびに末端0の終了を示します
- 隣接する二つの文字列が自動的に接続されています
- 文字の配列の形でC言語の文字列
- 文字列演算子を操作しないでください
- これは、文字列配列を用いて横断することができます
文字列またはポインタの配列?
= S * CHAR「こんにちは、世界は!」;
による文字列の特殊な位置に、文字列定数を指すように初期化ポインタは、sがその文字列はsが指すこと、実際のconstのchar * sとなるように、配置されているsの、書き込むことができないの改変[0]、S [1 ] 、等
あなたは文字列を変更する必要がある場合は、配列を使用する必要があります:
文字Sは[] =「こんにちは、世界!」;
配列 | ポインタ |
---|---|
チャーS [] =「こんにちは」。 | char * S =「こんにちは」; |
ここでは、文字列は自動的にローカル変数空間として回収されます | この文字列は、どのパラメータを処理し、動的に割り当てられたスペースを知りません |
文字列を構築します | 文字列の処理 |
CHAR *文字列は、必ずしもではありません
チャーは、*文字列はフォームのように表すことができる
が、charが* 必ずしもされていない文字列
内の文字の配列を指すことが意図は文字へのポインタで
のみ0の終了時に、それを参照した文字列は、文字を指し弦
文字列の計算
1.入出力%の
char string[8];
scanf("%7s",string);
printf("%7s",string);
scanf関数は、ワード(読み込みスペース、タブ、キャリッジリターン日)読み込み
%7Sを示していることが唯一の7文字まで読んで(だけでなく、エンディング\ 0)
の数字はこれを読み取ることができる文字の最大数を示すの内側%のSを数値のデジタル配列が小さなものよりも良いはずです
2.ポインタの初期化を覚えておいてください
scanf関数その後、*覚えている文字列を0に初期化されている文字を
文字列関数
書式#include <文字列の.h>
- S strlenをリターン文字列の長さ(終端0を含まず)
の入力と出力のLU%の
行のchar [] = "こんにちは";
のprintf((行)strlenを"%= strlenをLU")。 - strcmpは(S1、S2)を返し、2つの文字列を比較
S1 == S2:0
正の差:S1> S2
負差:S1 <S2 - strcpyのコピーをdstに列src
- strcatのS1、S2には、長い文字列のコピーに続いています