C语言-字符串处理函数

1、strcat函数

一般形式为:strcat(字符数组1,字符数组2)

strcat是string catenate(字符串连接)的缩写。其作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值---字符数组1的地址。例如:

char str1[30]={"People's Republic of "};
char str2[]={"China"};
printf("%s",strcat(str1,str2));

输出:People's Republic of China

说明:

(1)字符数组1必须足够大,以便容纳连接后的新字符串。长度必须大于连接后的总长度

(2)连接前两个字符串的后面都有'\0',连接时将字符串1后面的'\0'取消,只在新串最后保留'\0'

2、strcpy和strncpy函数

其一般形式为

strcpy(字符数组1,字符串2)

strcpy是string copy(字符串复制)的简写。它是"字符串复制函数",作用是将字符串2复制到字符数组1中去。例如:

char str1[10]='',str2[]={"China"};
strcpy(str1,str2);
说明:

(1)字符数组1必须定义的足够大,以便容纳被复制的字符串。字符数组1的长度不应小于字符串2的长度。

(2)"字符数组1"必须写成数组名形式(如str1),"字符串2"可以是字符数组名,也可以是一个字符串常量。例如:

strcpy(str1,"China");
(3)如果在复制前未对str1数组赋值,则str1各字节中的内容是无法预知的,复制时将str2中的字符串和其后的'\0'一起复制到字符数组1中,取代字符数组1中的前面6个字符,最后4个字符并不一定是'\0',而是str1中原有的最后4个字节的内容。

(4)不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。如下面两个都是不合法的:

str1="China";  //error
str1=str2;     //error

而只能用strcpy函数将一个字符串复制到另一个字符数组去。用赋值语句只能将一个字符赋给一个字符型变量或字符数组元素。

(5)可以用strncpy函数将字符串2中前面n个字符复制到字符数组1中去。例如:

strncpy(str1,str2,2);

作用是将str2中最前面2个字符复制到str1中,取代str1中原有的最前面2个字符。但复制的字符个数n不应多于str1中原有的字符(不包括'\0')。

3、strcmp函数

其一般形式为

strcmp(字符串1,字符串2)

strcmp是string compare(字符串比较)的缩写。它的作用是比较字符串1和字符串2。例如:

strcmp(str1,str2);
strcmp("China","Korea");
strcmp(str1,"Bei jing");
对两个字符串自左向右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到'\0'为止。如全部字符相同,则认为相等;若出现不相同的字符,则以第一个不相同的字符的比较结果为准。注意小写字母比大写字母大。

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

(1)如果字符串1=字符串2,则函数值为0。

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

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

对两个字符串的比较要用strcmp函数的形式。

4、strlen函数

其一般形式为

strlen(字符数组名/字符串常量)

strlen是string length(字符串长度)的缩写。它是测试字符串长度的函数。函数的值为字符串中的实际长度(不包括'\0'在内)。例如:

strlen("China");
结果为5

5、strlwr函数

其一般形式为

strlwr(字符串)

strlwr是string lowercase(字符串小写)的缩写。函数的作用是将字符串中大写字母换成小写字母。

6、strupr函数

其一般形式为

strupr(字符串)

strupr是string uppercase(字符串大写)的缩写。函数的作用是将字符串中小写字母换成大写字母。








你可能感兴趣的:(String,字符串,C语言)