一.字符串

"hello bit.\n"​

这种由双引号引起来的一串字符称为字符串字面值,或者简称字符串

注意:字符串的结束标志是一个\0的转义字符.在计算字符串长度的时候\0是结束标志,不算作字符串内容


附 : 字符数组----数组是一组同类型的元素

例子 :​

#include <stdio.h>

int main()

{

char arr[] = "hello";                //字符串末尾隐藏了一个\0(转义字符)的字符,是字符串结束的标志

char arr1[] = "abc";                //双引号包括多个字符

char arr2[] = { 'a','b','c' };       //单引号包括一个字符

//打印字符串

printf("%s\n", arr1);              //4个元素,arr1打印出来的长度是3

printf("%s\n", arr2);              //3个元素+乱码(因为没有加\0),所以arr2打印出来的长度是随机值

return 0; 

}


例子 : 求字符串长度

#include<stdio.h>

int main()

{

       int len = strlen("abc");        //strlen----stringlength

       printf("%d\n",len);

       return0;                            //输出3

}


二.转义字符(未加粗的可以不用详记,但要知道这些是转义字符)

转变了字符原来的意思

\?----在书写连续多个问好时使用,防止他们被解析成三字母词(现在很多编译器不支持)

\’----用于表示字符常量

\''----用于表示一个字符串内部的双引号

\\----用于一个反斜杠,防止它被解释为一个转义序列符

\a----警告字符,蜂鸣

\b----退格符

\f----进纸符

\n----换行

\r----回车

\t----水平制表符(键盘上的Tap键,一个缩进)

\v----垂直制表符

\ddd----ddd表示1-3个八进制的数字。如:\130 X

\xdd----dd表示2个十六进制数字。如:\x30 0


例子 :

①比如打印   c:\test\test.c

int main()

{

printf("c:\test\test.c");   //打印出来是  c:    est    est.c ,不是我们要的效果,这是因为转义字符\t导致的

return 0;         

}​

改了之后

int main()

{

printf("c:\\test\\test.c");

return 0;         

}​


②比如打印 ab\ncd

int main()

{

printf("ab\ncd");   //打印出来是    ab

                                                  cd  

                            //不是我们要的效果,这是因为转义字符\n导致的

return 0;         

}​

​改了之后

int main()

{

printf("ab\\ncd");     //打印ab\ncd​,这是因为加了转义字符\

return 0;         

}​

​​int main()

{

printf("%c\n", '\x30' );   ​  //十六进制的30是十进制的48

​                                         //打印 0 ----ASCII码值是48

                return 0;         

}​

④比如打印 (are you ok??)

int main()

{

printf(" (are you ok??)");     //打印 (are you ok],这是因为??)被解析成】

return 0;                                                                       ??)三字母词

}​

​改了之后

int main()

{

printf("(are you ok\??)");     //打印(are you ok??),这是因为加了转义字符\

return 0;         

}​

​int main()

{

printf("%c\n", '\130');   ​  //8进制的130是十进制的88

​                            //打印 X ----ASCII码值是88​

                return 0;         

}​

c:\test\328\test.c    这个字符串长度是14

printf("%d\n",strlen("c:\test\328\test.c"))   //  c  :  \t  e   s  t  \32  8  \t  e  s  t  .  c

                                                  //长度14,注意:8是一个字符,\ddd里的数字是八进制


⑦比如打印  "

​int main()

{

printf(""");     //报错了,这是因为前面两个双引号被解析成一个双引号,单个双引号就落单了,只需要在”前加个\就可以了

return 0;         

}​

三.注释

​1.代码中有不需要的代码可以直接删除,也可以注释掉

2.代码中有些代码比较难懂,可以加一下文字注释

3.注释有两种风格

·C语言风格的注释/*xxxxx*/

缺陷:不支持嵌套注释(就是注释里面有注释的时候以/*开始到第一个以*/结束)

·C++的风格注释//xxxxx

可以注释一行也可以注释多行​


例子 :

#include<stdio.h>

int main()

{

//int a = 10;          ----这行代码不想用可以//注释(C++注释风格)现在一般用这种风格


/*

int b =0;

*/                         ---- 这行代码不想用可以/*xxxx*/注释(C注释风格)     

       return0;     

}

C--初识字符串、转义字符、注释_C