在学习了这么多c语言知识后,我们今天来了解一下c语言中字符串和字符,转义字符以及注释的作用,废话不多说,我们开始吧
字符串
字符串:由英文双引号引起的一串字符,可用来表示身份证号码、姓名等汉字,专业称字符串字面值(stringl iteral),注意 单英文引号引起的叫做字符,双引号引起的叫做字符串
示例: “heloo bit.\n” ; “” (空字符串)
练习—字符串和字符的区别:
int main()
{
char x[] = "abc";
char y[] = { 'a','b','c',0 };
printf("%s\n", x);
printf("%s\n", y);
return 0;
}
注意:在x数组中,因”abc”是字符串所以系统会自动在后面加入字符串结束标志 ‘\0’(转义字符) 而y数组中包含的是字符,它没有自动添加字符结束标志,需要手动写进去,不然会乱码(可以在调试窗口中查看ctrl+f10-下方调试窗口),其次0=\0,a=97 (来自于ascll码) |
补充:计算字符长度
新函数-strlen (计算字符长度)
注意:使用此函数需要再顶部声明include<string.h> 来使用此函数
示例:
#include <stdio.h>
#include<string.h>
int main()
{
char x[] = "abc";
char y[] = { 'a','b','c' };
printf("%d\n", strlen(x));
printf("%d\n", strlen(y));
return 0;
}
注意:之所以结果不一样是因为strlen计算长度是以\0为结束标志,而y中没有结束标志,故就会一直计算字符长度,直到遇到\0才停止,故显示的值为随机值 |
转义字符
转义字符:转变原来的意思
例如:普通字符n和换行符\n
示例:
int main()
{
printf("C;\test\32\test.c");
return 0;
}
因为\t为水平制表符,故在有\t时转义了意思,不再是原本的t了
转义字符 |
释义 |
\? |
在书写多个连续问号时,防止编译器解析为三字母词,现以很少出现此情况 |
\’(英文单引号) |
用于表示字符常量’ |
\”(英文双引号) |
用于表示一个字符串内部的双引号 |
\\ |
用于表示一个反斜杠,防止它被解释为一个转义序列符 |
\a |
使终端发出警报声或闪烁 |
\b |
退格符,但不真实删除字符 |
\f |
进纸符 |
\n |
换行 |
\r |
回车,光标移动到同一行开头 |
\t |
水平制表符,通常是8个位宽 |
\v |
垂直制表符 |
\ddd |
ddd表示1-3个八进制的数字。如:\130x |
\xdd |
dd表示2个十六进制数字。如:\x30 0 |
练习:让上一个案例得到想要的显示效果
int main()
{
printf("C;\\test\\32\\test.c");
return 0;
}
\\正如上表所示,是不让\后面的字符被转义 效果: |
练习:打印’(英文单引号)和”(英文双引号)
int main()
{
printf("%c\n", '\'');
printf("%s\n","\"");
return 0;
}
|
案例:\ddd和\xdd的用法
#include <stdio.h>
#include<string.h>
int main()
{
printf("%d\n",strlen("c:\test\32\test.c"));
printf("%c\n",'\132');
printf("%c\n", '\x61');
return 0;
}
注意:八进制和十六进制都不能大于它的最大数组否者错误 |
结果
注释
注释:手动注释掉一些不需要的代码或在代码后用文字述说改代码的作用等
符号:/*(C语言-有一个缺点,不能嵌套)和//(C++语言-快捷键ctrl+k并ctrl+c).
好了,关于c语言的字符串、转义字符、注释的内容就到这里了,我们下一章再见
如有问题请指出