C语言的数组、字符串等一些知识总结

来源:互联网 发布:郭艾伦数据 编辑:程序博客网 时间:2024/05/30 04:10

1、字符串:位于双引号中的字符序列,以\0结束,所占字节比实际多一个。


2、字符常量可以赋给字符变量,字符串常量不可以赋给字符串变量。C语言中用字符数组来存放字符串。


3、字符数组:memset(a,\0,10);用来给数组清0的。需要加头文件#include<string.h>。


注意:定义数组时,应确保数组长度比字符串长度至少多1,未被使用的元素自动初始化为0。


4、\0代表ASCII码为0的字符(NUL)。为“空操作符”,用它作为字符串结束标志不会产生附加的操

作或增加有效字符,只起一个供辨别的标志。


5、字符数组的输入输出的两种方法:


(1)逐个字符输入输出(%c);(输出字符不包含‘\0’)

(2)整个字符串一次输入输出(%s)。(输出的是字符数组名)

6、scanf()格式化输入:接收字符串,不接收空格。输入字符串时,数组名前不加&。


7、gets()可以接收空格,以回车结束输入;getchar()输入回显;getch()不回显,而且可以接收‘\r’,

需要#include <conio.h>


8、puts()输出字符串函数程序开头用#include <string.h>;输出字符函数putchar()。


9、字符数组的一些方法

(1)统计字符串长度:strlen();(遇到‘\0’结束)。

(2)内存赋值函数:memset(字符数组名,要替换的内容,要替换的个数),根据要替换的个数,用膏药替换的内容,替换字符串数组的内容(清0)。

(3)字符串拷贝:strcpy(字符数组1,字符数组2);strcpy(字符数组名,字符常量)。

(4)字符串拷贝:strncpy(目标数组,原数组,个数);将指定个数的字符串拷贝到指定的数组中。注意:strncpy不检查目标字符串的大小,当目标字符串内存不足,会导致崩溃。

(5)字符串比较:strcmp(字符串1,字符串2)。(规则:讲两个字符串自左至右逐个字符比较,直到遇到相同的字符或\0结束)。


比较的结果由函数值带回:

1>如果字符串1=字符串2,则函数值为0;

2>如果字符串1>字符串2,则函数值为一个正整数

3>如果字符串1<字符串2,则函数值为一个负整数


(6)字符串连接函数:strcat(字符数组1,字符数组2)。

(7)字符串转小写:strlwr(字符串)。

(8)字符串转大写:strupr(字符串)。