字符串是一个或多个字符的序列,双引号不是字符串的一部分。
C语言中没有专门用于存储字符串的变量类型,字符串都被存储在char类型的数组中。数组由连续的存储单元组成,字符串中的字符被存储在相邻的存储单元中,每个单元存储一个字符。
在数组末尾位置存在字符\0,叫做空字符,是非打印字符,其ASCII码是0。C中的字符串一定以空字符结束,这意味着数组的容量必须至少比待存储字符串中的字符数多1。但在计算字符串长度时\0是结束标志,不算作字符串内容。
int main()
{
char arr[] = "hello";
char arr1[] = "abc";
char arr2[] = { 'a', 'b', 'c' };
printf("%s\n", arr1);//输出abc
printf("%s\n", arr2);//输出abc+乱码
return 0;
}
#include<string.h>
#include<stdio.h>
int main()
{
int len = strlen("abc");
printf("%d\n", len); //输出结果为3,说明\0不计入字符串长度
return 0;
}
转义字符:
int main()
{
printf("%c\n", '\''); // \'用于表示字符常量'
printf("%s\n", "\""); // \"用于表示一个字符串内部的双引号
printf("c:\\test\\test.c"); // \\用于表示一个反斜杠
printf("\a\a\a"); //\a警告字符,蜂鸣
printf("a\nb"); // \n换行符
printf("%c\n", '\130'); // \ddd表示1-3个八进制的数字 输出X
printf("%c\n", '\x30'); // \xdd表示2个十六进制数字 输出0
//计算含有转义字符的字符串长度
printf("%d\n", strlen("c:\test\328\test.c"));
//一个转移字符长度为1,如\t \32
//输出14
return 0;
}
C语言转义字符: