C语言字符串处理函数

puts函数——输出字符串的函数

     其一般形式为:puts(字符数组)

     其作用是将一个字符串(以’\0’结束的字符序列)输出到终端。假设已定义str是一个字符数组名,且该数组已被初始化为“china”。则执行:puts(str)

     其结果是在终端上输出"China",由于可以用 printf函数 输出字符串,因此puts函数用的不多。

     用puts函数输出的字符串中可以包含转义字符。例如:

char str[]={"China\nBeijing"};
puts(str);

输出:

China
Beijing

gets函数——输入字符串的函数

     其一般形式为:gets(字符数组)
     其作用是从终端输入一个字符串到字符数组,并且得到 一个函数值。该函数值是字符数组的起始地址。如执行下面的函数:

gets(str)

从键盘键入:Computer
     将输入的字符串"Computer"送给字符数组str(注意,送给数组的共有9个字符,而不是8个字符),返回的函数值是字符数组str的起始地址。一般gets函数的目的是向字符数组输入一个字符串,而不大关心其函数值。

     注意:用puts和gets函数只能输出或输入一个字符串,不能写成puts(str1,str2);gets(str1.str2)

strcat函数——字符串连接函数

     其一般形式为:strcat(字符数组1,字符数组2)
     strcat是STRing CATenate(字符串连接)的缩写。其作用是把两个字符数组中的字符串连接起来,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值——字符数组1的地址。例如:

char str1[30]={"Leo is a"};
char str2[]={"boy"};
printf("%s",strcat(str1,str2)); 

输出:Leo is a boy

说明:
(1)字符数组1必须足够大,以便容纳连接后的新字符串。本例中定义str1的长度为30,是足够大的,如果在定义时改用str1[]={“Leo is a”},就会出现问题,因长度不够

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

strcpy 和 strncpy 函数——字符串复制函数

     其一般形式为:strcpy(字符数组1,字符数组2)
     strcpy时STRing CoPY(字符串复制)的简写, 它表示”字符串复制函数“,作用是将字符串2复制到字符组1中去。例如:

char str1[10],str2[]="China";
strcpy(str1,str2);

执行后str1的状态就是:China

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

(2)”字符数组1”必须写成数组名形式(如str1),“字符串2”可以是字符数组名,也可以是一个字符串常量。例如:strcpy(str1,“China”),作用与前面相同

(3)如果在复制前未对str1数组初始化或赋值,则str1各字节中的内容是无法预知的,复制时将str2中的字符串和其后的’\0’一起复制到字符数组1中。

(4)不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。如:str1=“China”,str1=strr2,这些都是不合法的。只能用strcpy函数将一个字符串复制到另一个字符数组中去。用赋值语句只能将一个字符赋给一个字符型变量或字符数组元素。如:
char a[5],c1,c2;
c1='A',c2='B';
a[0]='C';a[1]='h';a[2]='i';a[3]='n';a[4]='a';

(5)可以用strncpy函数将字符串2中前面n个字符复制到字符数组1中去,例如:strncpy(str1,str2,2);作用是将str2中最前面的2个字符复制到str1中,取代str1中原有得到最前面2个字符。但复制的字符个数n不应多于str1中原有的字符(不包括’\0’)

strcmp函数——字符串比较函数

     其一般形式为:strcmp(字符串1,字符串2)
     strcmp是STRing CoMPare(字符串比较)的缩写。它的作用是比较字符串1和字符串2.例如

strcmp(str1,str2);
strcmp("China","Korean");
strcmp(str1,"Beijing");

说明:字符串比较的规则是:将两个字符串自左至右逐个字符相比(按ASCII值大小比较),直到出现不同的字符或遇到’\0’为止。
(1)如全部字符相同,则认为两个字符串相等;
(2)若出现不相同的字符,则以第1对不相同的字符的比较结果为准。例如:

"A"<"B"
"a">"A"
"computer">"compare"
"these">"that"
"1A">"$20"
"CHINA">"CANADA"
"DOG">"cat"
"Tsinghua">"TSINGHUA"

如果参加比较的两个字符串都由英文字母组成,则有一个简单的规律:在英文字典中位置在后面的为“大”。

比较的结果由函数值带回:
(1)如果字符串1=字符串2,则函数值为0
(2)如果字符串1>字符串2,则函数值为一个正整数
(3)如果字符串1<字符串2,则函数值为一个负整数

**注意:**对两个字符串比较,不能用以下形式:

if (str1>str2)
	printf("yes");

而只能用:

if (strcmp(str1,str2)>0)
	printf("yes");

strlen函数——测字符串长度的函数

     其一般形式为:strlen(字符数组)
     strlen是STRing LENgth(字符串长度)的缩写。它是测试字符串长度的函数。函数的值为字符串的实际长度(不包括’\0’在内)。例如

char str[10]="China"
printf("%d",strlen(str));

输出结果是5.

strupr函数——转换为大写的函数

     其一般形式为:strupr(字符串)
     strupr是STRing UPpeRcase(字符串大写)的缩写。函数的作用是将字符串中小写字母转换为大写字母

你可能感兴趣的:(C语言学习)