Computer-programming-strings
コンピュータープログラミング-文字列
- 文字*についての議論の中で、文字データ型は単一の文字を扱い、キーボードの任意の文字を文字型変数に割り当てることができることを学びました。
それでは、少し先に進んで、変数に複数の文字を格納する必要がある状況を考えてみましょう。 Cプログラミングでは、文字型変数に複数の文字を格納できないことがわかりました。 したがって、次のステートメントはCプログラミングでは無効であり、構文エラーを生成します-
char ch1 = 'ab';
char ch2 = '10';
また、 arrays の概念を使用して、類似したデータ型の複数の値を変数に格納する方法を見てきました。 これは、int型の配列に5つの数値を格納および印刷する構文です-
#include <stdio.h>
main() {
int number[5] = {10, 20, 30, 40, 50};
int i = 0;
while( i < 5 ) {
printf("number[%d] = %d\n", i, number[i] );
i = i + 1;
}
}
上記のコードをコンパイルして実行すると、次の結果が生成されます-
number[0] = 10
number[1] = 20
number[2] = 30
number[3] = 40
number[4] = 50
さて、数字の場合と同じ方法で5文字の配列を定義し、それらを印刷してみましょう-
#include <stdio.h>
main() {
char ch[5] = {'H', 'e', 'l', 'l', 'o'};
int i = 0;
while( i < 5 ) {
printf("ch[%d] = %c\n", i, ch[i] );
i = i + 1;
}
}
ここでは、%cを使用して文字値を出力しました。 上記のコードをコンパイルして実行すると、次の結果が生成されます-
ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o
上記の例を終了したら、Cプログラミングで文字列がどのように機能するか理解できたと思います。これは、* Cの文字列は文字の配列*として表されるためです。 Cプログラミングにより、文字列の割り当てと印刷が簡素化されました。 簡単な構文でもう一度同じ例をチェックしましょう-
#include <stdio.h>
main() {
char ch[5] = "Hello";
int i = 0;
/*Print as a complete string*/
printf("String = %s\n", ch);
/*Print character by character*/
while( i < 5 ) {
printf("ch[%d] = %c\n", i, ch[i] );
i = i + 1;
}
}
ここでは、配列名 ch を使用して完全な文字列値を出力するために%sを使用しました。
上記の例からは見えませんが、Cプログラムは内部的にすべての文字列の最後の文字としてヌル文字 '\ 0' を割り当てます。 これは文字列の終わりを示し、5文字の文字列を配列に格納する場合は、Cが文句を言うことはありませんが、6の配列サイズを良い習慣として定義する必要があります。
上記のコードがコンパイルされて実行されると、次の結果が生成されます-
String = Hello
ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o
基本的な文字列の概念
上記の議論に基づいて、Cプログラミング言語の文字列に関する次の重要なポイントを結論付けることができます-
- Cの文字列は、文字の配列として表されます。
- 文字ごとに文字の配列に割り当てることにより、Cプログラミングで文字列を構成できます。
- 二重引用符で囲まれた完全な文字列を割り当てることにより、Cプログラミングで文字列を構成できます。
- 配列添え字を使用して文字ごとに文字列を印刷するか、添え字なしの配列名を使用して文字列全体を印刷できます。
- すべての文字列の最後の文字はヌル文字です。つまり、 ’\ 0’ です。
- ほとんどのプログラミング言語には、文字列を操作するための組み込み関数があります。つまり、文字列を連結したり、文字列から検索したり、文字列から部分文字列を抽出したりできます。 詳細については、Cプログラミングまたはその他のプログラミング言語に関する詳細なチュートリアルをご覧ください。
Javaの文字列
文字配列を使用して文字列を格納できますが、Javaは高度なプログラミング言語であり、その設計者は追加機能を提供しようとしました。 Javaは、他のデータ型と同様に、文字列を組み込みデータ型として提供します。 つまり、文字列を文字の配列として定義する代わりに、文字列を直接定義できるということです。
以下は、Javaで作成された同等のプログラムです。 Javaは、次のプログラムに示すように、 new 演算子を使用して文字列変数を作成します。
次のプログラムを実行して、出力を確認することができます-
public class DemoJava {
public static void main(String []args) {
String str = new String("Hello");
System.out.println( "String = " + str );
}
}
上記のプログラムが実行されると、次の結果が生成されます-
String = Hello
Pythonの文字列
Pythonで文字列を作成するには、一重引用符または二重引用符を使用して文字列をPython変数に割り当てるのと同じくらい簡単です。
2つの文字列を作成し、print()関数を使用してそれらを印刷する簡単なプログラムを以下に示します-
var1 = 'Hello World!'
var2 = "Python Programming"
print "var1 = ", var1
print "var2 = ", var2
上記のプログラムが実行されると、次の結果が生成されます-
var1 = Hello World!
var2 = Python Programming
Pythonは文字タイプをサポートしていません。これらは長さ1の文字列として扱われるため、部分文字列とも見なされます。
部分文字列にアクセスするには、スライスに角括弧を使用してインデックスを作成し、部分文字列を取得します。 次のコードセグメントを見てください-
var1 = 'Hello World!'
var2 = "Python Programming"
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]
上記のコードが実行されると、次の結果が生成されます-
var1[0]: H
var2[1:5]: ytho