C语言初学者三
一、字符串
一.字符串的定义
字符串是由双引号引起来的一串字符称为字符串字面值,或简称字符串。
字符串的结束标志是一个“\0”的转义字符,在计算字符串的长度的时候“\0”是结束标志,不算作字符串内容。
int mian()
{
//这就是字符串
"hello";
return 0;
}
1.字符串中的“\0”
int main()
{
//创建一个char类型数组来存储hello
char arr[] = "hello";
return 0;
}
//使用调试器去查看arr 变量中存储hello的方式,可以看到字符串末尾一个存储单元内存了一个“\0”。
2.有无"\0"的区别
int main()
{
char arr1[] = "abc";
char arr2[] = {'a','b','c'};
printf("%s\n",arr1);
printf("%s\n",arr2);
return 0;
}
打印完后可以看出arr1和arr2存储的字符方式不同arr1最后还存储了一个“\0”,然后打印结果就打不相同了。
在arr2中加入"\0"后的打印结果:
int main()
{
char arr1[] = "abc";
char arr2[] = {'a','b','c'};
//计算字符串长度函数strlen,使用这个函数需要应用新的头文件#include<string.h>
printf("%s\n",strlen(arr1));
printf("%s\n",strlen(arr2));
return 0;
}
这里可以看出arr1的长度是正常的arr2错误它给出的是一个随机的值,因为arr2中c后面是什么不知道不确定是不是\0所有电脑就给出了一个随机的值。
2.转义字符
1.转义序列
转义序列 | 含义 |
---|---|
\a | 报警 |
\b | 退格 |
\f | 换页 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\\ | 反斜杠() |
\’ | 单引号 |
\" | 双引号 |
\? | 问号 |
\0oo | 八进制值(oo必须是有效的八进制数,即每个o可表示0~7中的一个数) |
\xhh | 十六进制值(hh必须是有效的十六进制数,即h每个可表示0~f中的一个数) |
转义字符:将反斜杠‘’后面的字符转变成为另外的意义!
int main()
{
printf("sdf\tsfdf\tsdf");
printf("ads\nsdf");
return 0;
}
printf与原本要打印的不服,打印成另一种意思,这就是转义字符的意义。
2. 转义字符的使用
int main()
{
printf("\a");//电脑会有一声报警音。
printf("%s\n","as")
printf("%s\n","\"")//打印"号
//特殊转义字符
printf("%c\n",'\130');//会把字符类型130从八进制转换成十进制成88在打印成88对应的ASCII吗值X
//\x表示16进制。
printf("%c\n",'\x30');//会把字符类型30从十六进制转换成十进制成48在打印成88对应的ASCII吗值0
printf("%d\n",strlen("c:\tdgs\328\t235.c"));//‘\t’占一个字符。\328中8另算一个字符,因为八进制中不能有8.
return 0;
}