整数、文字配列、文字列のC言語配列の違い

まず、

最初の整数配列を格納し、配列には「\ 0」、文字列は自動的に、そんなに実際の文字が格納された文字を追加しますよりも配列のサイズ最後の時に追加されていない
第2の整数配列は、各セルがあります4つのバイトは、文字列は、各文字を表す、記憶されています

文字と文字列の配列の間に第二に、違い

C言語では、変数に格納されている文字列をしたい場合、あなたは配列の各要素は、1つの文字を格納するために、文字配列は、文字列を格納するために使用する文字の配列を使用する必要があり、具体的な文字列変数ではありません。

<1>定義:チャーC [10]

整数の相互運用文字、C INTので[10]、また文字の配列を定義することができます。しかしながら、スペースの無駄を定義する整数が割り当てられたバイトの二つの異なるタイプに、実用的な意義のこの定義に加えて、ちょうどその正当性を示すために、大きくありません。

<2>初期化: 

    最も簡単な方法、すなわちによって割り当て:チャーC [10] = { 'I' は、 ''、 ''、 'M'、 ''、 'H'、 ''、 'P'、 'P'、 ' Y「}; 10の文字が割り当てられている大のC [0]〜[9] 10個の要素cに。

   番号の初期値は、DAIがヌル文字(すなわち、「\ 0」)として自動的に、残りの要素を上記割り当てられた文字の配列内の配列は、要素のみの長さよりも小さい場合。
    チャーC [12] = { ' I'は、 ''、 ''、 'M'、 ''、 'H'、 ''、 'P'、 'P'、 'Y'は}; Cです[ 10]、C [11]の値は、 '\ 0'です。

    C言語、文字列として処理配列。私たちは、文字列を格納するための一般的な文字列を使用する場合は、まず十分な大きさ、および実際の配列を決定し、そんなに取らない、と我々は唯一の文字列の実際の長さを決定するために、彼らの上位ビットを気にしなければならない、Cは「文字列を定義します『0 \』文字で終了フラグ」、。10文字の文字列がある場合は「\ 0」である場合、重要な文字列は9です。つまり、文字列、その前の文字列の終わりを示す文字「\ 0」の顔インチ
    自動的にターミネータとして「0 \」文字列定数を追加するためのシステム。

    for文:pirntf(「?あなたは、\ nをどのように行うのですか」);文字列がメモリに格納されている場合、実際には、文字「\ 0」の終わりに自動的にシステムには、文字列の最後として、「\ 0」を加え、続いてマークは、printf関数の実装では、文字チェックの出力は、文字を見たびに「\ 0」です。「\ 0」の場合、出力を停止します。

   文字列定数は、文字の配列を初期化するために使用することができます。以下のような:

    チャーC [] = { "私は幸せ"}。

    また、直接のように書くことができます。

   システムが自動的に「\ 0」ターミネータが追加されるため、この時点では、アレイ10の長さを認識していないが、11; char型のC [] =「私は幸せです」。

    文字列が最後の文字「\ 0」、及び、文字列の実際の長さの決意を容易にするために、一致する文字列とアレイを処理する方法のために必要とされず、文字列の終わりにしばしば、プログラムでの取り扱いを容易にすることができるプラス'\ 0'。

<3>入力と出力の文字列を 

    (1)文字の入力と出力の文字を。「%のC」入力または出力文字形式の文字。

    (2)全体の入力または出力文字列。"%S" 文字形式では、出力文字列(String)をすることを意味します。例えば:

  チャーC [] = { "中国"}。
  printf( "%のS"、C)。

文字配列は、複数の「\ 0」、「\ 0」出力端の最初のケースが含まれている場合。

    (3)より長い定義された文字列より入力された文字列の長さは、配列インデックスが境界を引き起こすであろうが、このシステムは与えられていない場合。

    入力文字形式(4)%のS、ケース内のスペース、タブと入力を入力し、自動的に終了します。

スペースに遭遇scanf関数の入力は、文字列の最後とみなされた場合。テストは次のよう:

する#include <stdio.hの>
int型のmain()
{
    チャー0009 [5]、STR2 [5]、STR3 [5]。
    scanf関数( "%S%S%S"、STR1、STR2、STR3)。
    printf( "%S%S%S \ n"は、STR1、STR2、STR3)。
    0を返します。
}

業績:
================================
どのようyou↙がある
どのようにしている
======== ========================

#include <stdio.h>
int main()
{
    char str[13];
    scanf("%s", str);
    printf("%s\n", str);
    return 0;
}

运行结果:
================================
how are you?↙
how
================================

由第二个程序可知,实际并未将这12个字符加上'\0'送到数组str中,而是将空格前的字符"how"送到str中,将其视为字符串处理,在其后加上'\0' 。

おすすめ

転載: www.cnblogs.com/ggzhangxiaochao/p/11238491.html