一、概念
- C语言没有字符串类型,用一片内存空间保存一串字符,这片空间称作字符数组。
- 用 ‘\0’ 结尾的字符数组被称为字符串数组。( ‘\0’ 是字符串结束的标志)
- 用双引号括起来的都是字符串
二、初始化
-
char str[6] = { ‘h’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’ };//字符串数组
-
char str[6] = “hello”; //简化版写法
-
char str[6] = { ‘h’, ‘e’, ‘l’, ‘l’, ‘o’ };//str[5]的内存上自动赋值为’\0’
-
char str[10] = { ‘h’, ‘e’ };//其余8个元素自动赋值为’\0’
-
char str[] = “hello”;//元素个数可以省略 数组分配空间大小为字符串中实际赋值字节数6
-
char *str = “hello”;//str是指针 存储字符串首地址 指向字符串
-
char str[5] = { ‘h’, ‘e’, ‘l’, ‘l’, ‘o’ };//是字符数组而不是字符串数组,因为没有’\0’
三、赋值
- 利用 scanf 的 %s 占位符接收字符串。scanf 遇到空格或者Tab或者回车就结束输入
- 利用 gets 函数接收字符串
知识点习题
- 字符串 str = ‘\u00234\1234’,则 str.length 的值为:
A. 6
B. 3
C. 4
D. 7
正确答案: C
答案解析:
反斜杠(\)在字符串内有特殊含义,用来表示一些特殊字符,所以又称为转义符。
\0:null(\u0000)
\b :后退键(\u0008)
\f :换页符(\u000C)
\n :换行符(\u000A)
\r :回车键(\u000D)
\t :制表符(\u0009)
\v :垂直制表符(\u000B)
\' :单引号(\u0027)
\" :双引号(\u0022)
\\ :反斜杠(\u005C)
所以 \u0023 长度为1,
转义字符是要用\开头的,斜杠后面可跟1至3位八进制数(可以由0开头):或以x开头的1至2位十六进制数
所以长度一共为4.