vs里面的快捷键
编译程序:F7
运行程序:ctr+F5
打断点:F9
运行到断点位置:F5
单步执行:F10
单步进入函数:F11
结束调试:shift+F5
一. 在字符数组中容易忽视的一些小的问题:(这是我自己在学习这块时出现的问题)
在使用字符串处理函数时,应当在程序开始的地方加上
#include<string.h>
1.首先,字符型数据是以整数形式(ASCII代码)存放的,因此也可用整型数组存放字符数据
例如:int c[10];
c[0] = 'a';
对于字符型数组的初始化,最好在定义字符型数组时对它进行初始化,否则数组中个元素的内容是不可预料的;
如果初值的个数小于数组的长度,则只将这些字符赋给数组中前面的那些元素,
其余的元素自动定为空字符('\0').
'\0'代表的是ASCII码为0的字符
例如: char arr[20] = {'a','b','c','r'};
printf ("%s\n",arr); 程序不会出现错误
但是,如果char arr2[] = {'a','b','c','r'};
printf ("%s\n",arr); 程序的结果会出现乱码,是因为printf函数在输出字符串时是输出到'\0'截止的,
而在arr2这个数组中只有4个字符,并没有'\0';
所以,在学习这块知识时应该注意这点细节问题
2.scanf函数输入字符串时遇
到空格或者回车就会输入结束
gets(字符数组名)函数输入字符串时可以包含空格,是以回车结束的,这个函数的返回值是字符数组的起始地址,
这个了解就好,毕竟我们一般只用这个函数输入一个字符串,并不关心它的返回值
注意:puts和gets函数只能输出或者输入一个字符串
3.strcat(字符数组1,字符数组2)
作用是将两个字符数组中的字符串连接起来,把字符串2接到字符串1的后面,函数的返回值为字符数组1的地址
注意:字符数组1必须足够大,以便能够容纳连接后的新字符串
连接时删掉了字符数组1后面的'\0',只在新的字符串后面保留'\0';
4.strcpy和strncpy函数 (字符串复制函数)
strcpy(字符数组1,字符串2)
作用是把字符串2复制到字符数组1中去,所以字符数组1必须可以容纳被复制的字符串2,包括字符串2中的'\0';
注意:“字符数组1”必须写成数组名的形式,“字符串2”可以是字符数组名,也可以是一个字符串常量
例如:
strcpy(str1,“china”);
只能用字符串复制函数将一个字符串复制到另一个字符数组中,不能通过赋值的形式
strncpy(str1,str2,2)
作用是将字符串2中的前2的字符复制到字符数组1中,但是复制的字符个数n不应该大于字符数组1中原有的字符个数(不包括‘\0’).
5.strcmp函数(字符串比较函数)
strcmp(字符串1,字符串2);
字符串1和字符串2的形式可以是字符串常量,也可以是字符数组名
比较规则是:将两个字符串按从左到右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或者遇到'\0''为止。
比较的结果由函数值返回
字符串1 > 字符串2,结果返回大于0的整数
字符串1 < 字符串2,结果返回小于0的整数
字符串1 = 字符串2,结果返回0
6.strlwr函数(转换为小写的函数)
strlwr(字符串)
作用是将字符串中的大写字母换成小写字母
strupr(字符串)
作用是将字符串中的小写字母换成大写字母