语言编程入门 – 字符串字面量

C Programming Language Essentials – String Literals

By Jackson@ML

本文简要介绍字符串字面量的概念,以及相关实例,使您初步了解什么是字面量,如何运用它来进行字符串输出编程。希望对读者有所帮助。

1. 字符串字面量

一个“字符串字面量”,是指从源字符的一系列字符中,用双引号(“ ”)括起来的字符序列。
例如,在源字符“Welcome to China!”中,”China”就是这一系列字符的字符串字面量。

例如,有一行代码表示一个简单的字符串字面量:

char *msg = “This is a string literal.

2. 字符串字面量的类型

C语言中,字符串文本的类型为char数组,也就是char[ ]。字符串文本是字符序列,以零结尾。例如以下代码:

Char * str = "Hello, world!";    /*字符串字面量 */

字符串字面量可以用来初始化数组,如下代码:

char a1[] = "xyz"; /* a1字符数组,带有 {'x','y','z','\0'} */
char a2[4] = "xyz"; /*与a1相同*/
char a3[3] = "xyz"; /* a1是char[3] 带有 {'x,'y','z'}, 丢失了 '\0' */

另有宽字符串类型为wchar_t数组(也就是 wchar_t[ ])。

这意味着字符串是具有char类型元素的数组。数组中的元素数等于字符串中的字符数加上1(为终止null字符)。

3. 字符串字面量的存储

文本字符串的字符,会按顺序存储在连续的内存地址中。字符串文本中的转义字符(诸如:\或\”)计为单个字符。而null字符(由0转义序列表示)会自动添加到每个字符串文本中去,并且标记它的末尾。

但是,请注意:C编译器不能在两个不同的地址存储两个相同的字符串。/GF强制编译器将相同的字符串的单个拷贝放入可执行文件中。

4. 字符串字面量连接

1) 多行字符串

若要形成占用多行的字符串文本,可以将两个字符串连接起来,形成更长的字符串。
为此,需要使用反斜杠”\” 然后按下RETURN键。反斜杠会使得编译器忽略以下换行符。例如:字符串文本

“Welcome to China, and you may \
visit our fantastic landscapes and long history\
 attractions from different cities.

以上字符串,和下面的字符串是等同的:

“Welcome to China, and you may visit our fantastic landscapes and long history  attractions from different cities.
2) 强制换行

若要在字符串文本中强制使用换行符,请在字符串中要换行的位置前,输入换行符序列(n), 如下代码所示:

“Enter a number and\n a valid identification document”
3) 定位字符串

由于字符串可以在C程序代码的任何列中开始,而长字符串可以在后续行的任何列中继续,因此可以定位字符串以增强源代码的可读性。

无论何种情况,它们在输出时的屏幕表示都不受影响。例如:

printf_s(“This is the first sentence of the string,”
       “and this is the second sentence of the string,”
       “here this is the final sentence of the string.);

技术好文陆续推出。敬请关注。

您的认可,我的动力!😃

相关阅读:

  1. C语言编程入门 - main()函数
  2. C语言编程入门 - 编写第一个Hello, World!程序
  3. Shell编程基础 – C语言风格的Bash for循环
12-31 16:48