#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
// -----------------------------------------------------------------4.字符串+转义字符
//------------------------------------------------------------------4.1字符串
/*
-----------------------------------------------字符串定义
由双引号引起来的一串字符成为字符串字面值,是常量
"abcde"
"hello bit.\n"
字符串的 结束标志 放了一个 \0 转义字符
*/
//int main()
//{
// // char 字符类型
// // 'a'单引号引起来叫一个字符
// // "abcde" 双引号引起来叫一个字符串
// // C语言中没有 字符串类型
// char ch = 'w'; //ch是一个字符变量 'w'是一个字符
//
// return 0;
//}
//----------------------------------------------存储字符串
//int main()
//{
// char arr1[10] = { "abcde" };
// //把abcdef放到 arr[]中
// //当不确定后边字符的大小时,数组[]里的数值可以不写
// char arr2[] = {'a','b','c','d','e','\0'};// \0 结束标志
// printf("%s\n",arr1);// %s 打印字符
// printf("%s\n",arr2);
//
// return 0;
//}
//----------------------------------------结束标志 \0
//int main()
//{
// char arr1[10] = { "abcde" };
// char arr2[] = {'a','b','c','d','e','\0'};// \0 结束标志
// return 0;
//}
//------------------------------------------------------------------4.2 转义字符
/*
*
转义字符 就是 转变原来字符的意思
n---------\n
0---------\0
*/
//int main()
//{
// printf("abcnfe");
// printf("abc\nfe");// \n-----换行标志
//
// printf("abc0df");
// printf("abc\0df"); // \0-----结束标志
//
// return 0;
//}
/*-----------------------------------------------------------------规定的转义字符
\?------------在书写连续多个问号时使用,防止他们被解析成三字母词
\'------------用于表示字符常量 ’
\"------------用于表示一个字符串内部的双引号
\\------------用于表示一个反斜杠,防止被解释为一个序列符
\a------------警告字符蜂鸣
\b------------退格符
\f------------进纸付
\n------------换行
\r------------回车
\t------------水平制表符
\v------------垂直制表符
\ddd----------ddd表示1-3个八进制的数字,例如:\130X
\xdd----------dd表示两个16进制数字,例如:\x30
*/
//------------------------------------------------------------------ \?
//int main()
//{
// printf("%s\n","(are you ok??)");
// //早期打印出来的是(are you ok], 系统会把 ??)三字母词 打印成 ]
// printf("%s\n","(are you ok\?\?)");
// //所以把 ? 写成 \? ,现在不需要了
// return 0;
//}
//------------------------------------------------------------------- \'
//int main()
//{
// printf("%c\n",'\''); // %c 打印字符 %s 打印字符串
// return 0;
//}
//------------------------------------------------------------------- \"
//int main()
//{
// printf("abcde\n");
// printf("%s\n","abcde");
// printf("a\n");
// printf("\"\n");
//
// return 0;
//}
//------------------------------------------------------------------- \\
// int main()
//{
// printf("abcd\0ef");
// printf("abcd\\0ef");
// return 0;
//}
//int main()
//{
// printf("c:\test\test.c\n");
// printf("c:\\test\\test.c\n");
// return 0;
//}
//------------------------------------------------------------------- \n
//int main()
//{
// printf("abc\ned");
// return 0;
//}
//------------------------------------------------------------------ - \t
//int main()
//{
// printf("abcde\n");
// printf("abc\tde");// \t相当于一个空格
// return 0;
//}
//------------------------------------------------------------------ - \ddd
//ddd是三个八进制的数值
//int main()
//{
// printf("%c\n", '\130');//打印一个字符 八进制130=十进制88,88对应的ASCLL码值的字符为 X
// //输出X
// return 0;
//}
//------------------------------------------------------------------ - \xdd
//dd是两个十六进制数值
//int main()
//{
// printf("%c\n", '\x23');//
// return 0;
//}
//--------------------------------------------------------------------------练习1
//int main()
//{
// printf("%d\n", strlen("swee t"));//输出结果为? 6
// return 0;
//}
//--------------------------------------------------------------------------练习2
int main()
{
printf("%d\n", strlen("c:\test\628\test.c"));//输出结果为? 14
//为啥不是13?
//\ddd,ddd是八进制字符,8不是八进制里的
return 0;
}
// strlen() 求字符串的长度