day09:
一:二维数组:定义格式:数据类型 数组名称[ 一维数组的个数 ][ 一维数组的元素个数 ];
注意点: 1:如果二维数组仅定义,而没有初始化,里面的元素都是垃圾值。
2:使用二维数组进行定义的同时初始化,没有显示初始化的元素会被自动初始化为0;
3:定义二维数组时必须指定一维数组的元素个数。
二:二维数组的使用场景:走出迷宫:
三:走出迷宫的优化:
四:走出迷宫优化2:全局变量。
五:字符串基本概念:
1:字符串是一个以\0 结尾的字符数组。2:%s输出内容仅仅会检查是否遇到\0. 3:字符数组如果部分初始化,没有初始化的元素会被初始化为0. \0的ASCⅡ码就是0
4:所以当通过 字符来初始化一个字符数组如果没有把字符数组的空间填满,那么这个字符数组就是一个字符串。
六:字符串常见函数:字符串库: #include <string.h> (看第一遍看蒙了。)
1:用来计算字符串长度的函数(不包含\0):size_t strlen ( const char *str);
2:字符串拷贝的函数:①strcpy (char *dest, const char *src) :把src 中内容拷贝到dest,会覆盖原来内容,会把src中的\0也 拷贝过来,没有覆盖的内容不变。(但是不显示。)如果src中长度超过dest中所能容纳的长度,会导致程序崩溃。 ②: strncpy( char *dest, const char *src , size_t len) : len 表示要拷贝多少个字符到目标字符数组中,len 表示要拷贝的字符串 长度,不包含\0.
3:字符串拼接的函数。:①:strcat ( char *dest, const char *src) :把src中内容拼接在dest字符串后面,从前往后找,找到第一个\0的位置,开始拼接,如果src中长度超过dest所能容纳的长度会导致程序崩溃。 ②:strncat( char *dest, const char *src , size_t len): 计算了需要拼接的长度。 size_t len=sizeof(dest)- strlen(dest)- 1。
4:字符串比较的函数:strcmp( const char *str1, const char *str2) :操作:str1与str2 中 从第一个字符开始进行比较,若相等,就去判断后面的额字符是否相等,若相等则返回0;如果遇到不相等字符,就返回这两个字符的ASCⅡ码值得差。
七:字符串的练习&字符串数组:
八:输出字符串: printf (" % s\n", str) ;
接收字符串: 1: scanf (" %s" , str) ;①scanf 不能接收空格,遇到空格就结束了。②也有可能导致数组越界程序崩溃。
2: gets( str ); ①可以接收空格,②也会造成数组越界。
3: fgets ( str , sizeof( str), stdin ); ①可以接收空格 ②不会造成数组越界。