C语言字符串
1.字符串
在C语言中,由双引号引起来的一串字符称为字符串字面值,或者简称字符,字符串实际上是使用空字符 \0 结尾的一维字符数组。因此,\0 是用于标记字符串的结束。
例如:“hello”,“world”.
2.字符串长度
char arr[]="abc";//字符串默认末尾会包含\0
strlen(arr);//长度为6
char arr2[] = { 'a','b','c'};//数组初始化,只初始化了三个字符,没有包含\0
strlen(arr2);//输出的长度为随机值
printf("%d\n", strlen("abcd\0ab3")); //在字符串中含有"\0",字符串遇到"\0"结束,长度为4
两个数组初始化,一个包含\0,一个没有包含\0
在使用strlen()读取长度时,“\0”作为字符串结束的标志,是不会记录到字符串长度里的。
3.转义字符
printf("c:\test\test.txt");
我想在控制台上输出上面的代码,但是输出和预想不一样。这是因为转义字符的作用。C语言里有许多的转义字符,比如我们常用的\n,\t等转义字符。我们需要通过转义,再通过控制台打印盘符。
printf("c:\\test\\test.txt");
如果我们想要打印一个单引号或者双引号,应该怎么做呢?也是通过转义字符,把引号进行转义。
printf("%c\n", '\'');
printf("%s\n", "\"");
\ddd ddd表示1~3个八进制的数字。 如: \130 X
\xdd dd表示2个十六进制数字。 如: \x30 0
// \62会被解析成了一个字符,\628不是,因为八进制数里没有8
printf("%d\n", strlen("c:\test\628\test.c")); //长度为14