まず、配列
人気が配列のデータの同じ種類のグループであると言って、配列の定義は、データのグループの定義です。例えば、生徒の成績管理システムは、あなたが学生の名前、生徒の学校、生徒の成績の定義することはできません。これがないだけで面倒でしょうが、また、各変数の名前。
C言語で提案されているこの事アレーので。配列の定義の前によると、それはデータのグループの定義です。以下のように、おそらく定義:
INT stu_num [50];
このような定義の後、突然50の定義int型の変数の、彼らは、アレイ内部で統一されています。
アレイ定義
次のように実質的にアレイ形式を定義している:
タイプ名配列名[定数式]。
配列内の要素の数を示すために使用される式で[]定数は、この定数または定数式ではなく変数または不定値、またはコンパイルステージエラーを指示する必要があります。そのための良い定義した後、システムはすぐにこの数に応じてスペースを割り当てます。それが変数である場合は、システムが割り当てるためにどのくらいのスペースを知りません。
変数名を配列に名前を付けるだけで、数字、英字、アンダースコアを使用して、番号が最初に行うことができない、同じです。
アレイ内のアクセス要素:
アレイを使用する前に定義する必要がありますが、インデックス、特定のアクセスフォーマットによりアクセスされる必要がある次の通りである:
配列名[要素インデックス];
この要素のインデックスは、ゼロベースである、例えば:INT stu_num [60];次にインデックスは0〜59です。
注:このインデックスは、一定であってもよく、または可変であってもよいが、指定範囲内でアクセスされなければならない、そうでなければ主要なプログラムの低レベルの問題の崩壊をもたらす、アクセス違反が存在するであろう。
一次元アレイを初期化:
①、定義をアレイの初期化のアレイ素子上の全時間:
INT stu_num [5] = {101、102、103、104、105}。
②、アレイが初期化されるいくつかの要素の定義で:
[5] INT stu_num = {101、102};
初期化されていないデフォルトの初期値0の背後には、
実際には:stu_num [0] = 101、 stu_num [1] = 102 、stu_num [2] = stu_num [ 3] = stu_num [4] = 0
③、それは配列のすべての要素に初期化され、配列の定義において、アレイ必要が指定されていない長さ:
INT stu_num [] = {101、102、103、104、105}。
時間の指定した長さの定義かどうかの長さを指定していない、ルールにまとめ、システムは配列の長さをお知らせするための時間の定義は、大きさで定義されている、ことができます。
第二に、文字の配列
アレイは、char型の文字に格納された文字の配列です。例えば:チャーstu_name [50]は、
文字列自体ので、文字列が文字列として理解することができるように、文字の組み合わせです。C ++プログラミングプロセスは、文字列のさまざまな操作が発生します後。
初期化文字配列
モード①:初期化定義
チャーstu_name [3] = { ' X'、 'Y'、 'Z'};
またはチャーstu_name [] = { 'X '、 'Y'、 'Z'}。 //自動初期化長ので(アレイなど)数のコンパイラこと
やチャーstu_name [] =「XYZ」が ; // (アレイ状)コンパイラ番号可能にするために、自動的に長さを初期化
またはチャーstu_name [3] = " XYZ「;
モード②は、各文字が定義された後に初期化され、
stu_name [0] = 'X';
stu_name = 'Y'; [1]
stu_name [2] = 'Z'。
文字の配列の入力および出力
//输入
char stu_name[10];
cin >> stu_name;
cout << stu_name<< endl;
//输出
char stu_name[10] = {'a', 'b', 'c', 'd', 'e', '\0', ' ', 'x', 'y', 'z'};
cout << stu_name<< endl;
C言語の標準ライブラリには、一般的に、文字操作関数を使用します
機能 | 目的 |
---|---|
strcpyの(S1、S2)。 | 文字列s2のS1に文字列をコピーします。 |
STRCAT(S1、S2)。 | 文字列の最後に接続文字列S1、S2。 |
STRLEN(S1)。 | これは、文字列s1の長さを返します。 |
strcmp(S1、S2)。 | S1、S2が同じである場合、0を返す; S1場合<S2、戻り値が0未満である場合、S1> S2、戻り値が0よりも大きいです。 |
strchr(S1、CH)。 | これは、CHの最初の出現の文字列s1の最初の文字位置へのポインタを返します。 |
strstr(S1、S2)。 | これは、文字列の最初の出現のストリングS1、S2の位置へのポインタを返します。 |
#include <iostream>
#include <cstring>
using namespace std;
int main ()
{
char str1[11] = "Hello";
char str2[11] = "World";
char str3[11];
int len ;
// 复制 str1 到 str3
strcpy( str3, str1);
cout << "strcpy( str3, str1) : " << str3 << endl;
// 连接 str1 和 str2
strcat( str1, str2);
cout << "strcat( str1, str2): " << str1 << endl;
// 连接后,str1 的总长度
len = strlen(str1);
cout << "strlen(str1) : " << len << endl;
return 0;
}
文字の配列と文字列の間の差
この文字のASCIIコードが0である、「\ 0」:違いは、より多くの文字マーク文字の最後の文字列配列を超えています。
有効な文字列のマークが前に\ 0文字の終わりです。バイト数は、文字列の末尾マークからなる文字列によって占められる\0
のを。
第三に、文字列
標準C ++クラスライブラリは、次のようにも、便利な操作を提供し、操作機能、共通の文字C言語の標準ライブラリの上にサポートされている文字列タイプを、提供しています。
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str1 = "Hello";
string str2 = "World";
string str3;
int len ;
// 复制 str1 到 str3
str3 = str1;
cout << "str3 : " << str3 << endl;
// 连接 str1 和 str2
str3 = str1 + str2;
cout << "str1 + str2 : " << str3 << endl;
// 连接后,str3 的总长度
len = str3.size();
cout << "str3.size() : " << len << endl;
return 0;
}