语言编程入门 – 字符串字面量
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.”);
技术好文陆续推出。敬请关注。
您的认可,我的动力!😃