Saturday, September 1, 2018

C - ストリング

文字列は、実際には、文字の1次元配列で、ヌル文字「\ 0」で終わっています。 したがって、ヌル終了文字列には、文字列の後にnullが続く文字が含まれます。

次の宣言と初期化は、 "Hello"という単語からなる文字列を作成します。 配列の末尾にヌル文字を保持するには、文字列を含む文字配列のサイズは、 "Hello"という単語の文字数の1倍以上です。
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

配列の初期化の規則に従えば、次のように上記の文を書くことができます
char greeting[] = "Hello";

以下は、C / C ++における上記の定義された文字列のメモリ表現です

String Presentation in C/C++

実際には、文字列定数の末尾にヌル文字を置かないでください。 配列を初期化するときに、Cコンパイラは文字列の最後に '\ 0'を自動的に配置します。 上記の文字列を印刷しようとしましょう
#include <stdio.h>

int main () {

   char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
   printf("Greeting message: %s\n", greeting );
   return 0;
}
Greeting message: Hello

Cは、ヌルで終了する文字列を操作する幅広い関数をサポートしています
Sr.No.Function & Purpose
1
strcpy(s1, s2);
Copies string s2 into string s1.
2
strcat(s1, s2);
Concatenates string s2 onto the end of string s1.
3
strlen(s1);
Returns the length of string s1.
4
strcmp(s1, s2);
Returns 0 if s1 and s2 are the same; less than 0 if s1<s2; greater than 0 if s1>s2.
5
strchr(s1, ch);
Returns a pointer to the first occurrence of character ch in string s1.
6
strstr(s1, s2);
Returns a pointer to the first occurrence of string s2 in string s1.
次の例では、上記の関数のいくつかを使用しています
#include <stdio.h>
#include <string.h>

int main () {

   char str1[12] = "Hello";
   char str2[12] = "World";
   char str3[12];
   int  len ;

   /* copy str1 into str3 */
   strcpy(str3, str1);
   printf("strcpy( str3, str1) :  %s\n", str3 );

   /* concatenates str1 and str2 */
   strcat( str1, str2);
   printf("strcat( str1, str2):   %s\n", str1 );

   /* total lenghth of str1 after concatenation */
   len = strlen(str1);
   printf("strlen(str1) :  %d\n", len );

   return 0;
}

上記のコードをコンパイルして実行すると、次の結果が生成されます
strcpy( str3, str1) :  Hello
strcat( str1, str2):   HelloWorld
strlen(str1) :  10







No comments:

Post a Comment

Interfaces and their protocol stacks

インタフェースとそのプロトコルスタック 主要なネットワーク要素に精通した後、これら要素間のインタフェースをよりよく知る時期が来ています。 インタフェースは、MME、SGWおよびPGWが他のネットワーク要素(例えば、HSSまたはPCRF)と協働することを可能にする。 それらの...