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(字符串大写)的缩写。函数的作用是将字符串中小写字母转换为大写字母