Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語の文字列リテラルとは何ですか?


文字列リテラルは文字のシーケンスであり、ゼロで終了します。たとえば、

Char * str = "hi, hello"; /* string literal */

文字列リテラルは、配列を初期化するために使用されます。

char a1[] = "xyz"; /* a1 is char[4] holding {'x','y','z','\0'} */
char a2[4] = "xyz"; /* same as a1 */
char a3[3] = "xyz"; /* a1 is char[3] holding {'x,'y','z'}, missing the '\0' */

文字列リテラルの値を変更しようとすると変更できなくなり、未定義の動作が発生します。

char* s = "welcome";
s[0] = 'W'; /* undefined behaviour */

constを使用して、常に文字列リテラルをそのように示すようにしてください。

char const* s1 = "welcome";
s1[0] = 'W'; /* compiler error! */

文字定数とも呼ばれる文字列リテラルは、さまざまな文字セットをサポートします。

/* normal string literal, of type char[] */
   char* s1 = "abc";
/* UTF-8 string literal, of type char[] */
   char* s3 = u8"abc";
/* 16-bit wide string literal, of type char16x[] */
   char16x* s4 = u"abc";
/* 32-bit wide string literal, of type char32x[] */
   char32x* s5 = U"abc";

  1. C言語のstrcmp()関数とは何ですか?

    Cライブラリ関数intstrcmp(const char * str1、const char * str2) str1が指す文字列を比較します str2が指す文字列へ 。 文字の配列は文字列と呼ばれます。 宣言 以下は配列の宣言です- char stringname [size]; 例-charstring[50];長さ50文字の文字列 初期化 単一文字定数の使用- char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,&ls

  2. C言語のstrcpy()関数とは何ですか?

    Cライブラリ関数char* strcpy(char * dest、const char * src) srcが指す文字列をコピーします 宛先へ 。 文字の配列は文字列と呼ばれます。 宣言 以下は配列の宣言です char stringname [size]; 例-charstring[50];長さ50文字の文字列 初期化 単一文字定数の使用- char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}