次の宣言と初期化は、 "Hello"という単語からなる文字列を作成します。 配列の末尾にヌル文字を保持するには、文字列を含む文字配列のサイズは、 "Hello"という単語の文字数の1倍以上です。
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
配列の初期化の規則に従えば、次のように上記の文を書くことができます
char greeting[] = "Hello";
以下は、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