函数调用的一般形式:
strcat(字符数组1, 字符数组2)
其作用是把两个字符数组中的字符串连接起来,把字符串2连接到字符串1后面,结果放在字符数组1中,函数调用后返回值是字符数组1的地址。例如:
char str1[20] = "hello "; char str2[] = "world";
strcat(str1, str2); puts(str1);
运行上面代码的输出结果是:
hello world
函数调用的一般形式分别如下:
strcpy(字符数组1, 字符串2)
strncpy(字符数组1, 字符串2, n)
strcpy函数的作用是把字符串2复制到字符数组1中;strncpy函数的作用是把字符串2的前n个字符组成的字符串复制到字符数组1中。例如:
char str1[30], str2[30]; char str3[] = "hello world";
strcpy(str1, str3); strncpy(str2, str3, 5);
puts(str1); puts(str2);
上述代码运行的输出结果是:
hello world
hello
函数调用的一般形式:
strcmp(字符串1, 字符串2)
其作用是比较字符串1和字符串2之间的大小关系。字符串的比较过程是将两个字符串从第1个字符开始向右逐个比较每个字符,直到出现字符不相同或其中一个字符串出现字符串结束标记'\0'为止。字符比较的依据是按照其ASCII码值。比较的结果有以下3种情况:
(1)如果两个字符串长度相同且对应的每个字符都相同,则字符串1等于字符串2,函数值为0。
(2)如果出现不同字符时,字符串1的字符大,则字符串1大于字符串2,函数值为正整数。
(3)如果出现不同字符时,字符串2的字符大,则字符串1小于字符串2,函数值为负整数。
例如:
int flag;
flag = strcmp("China", "Chinese");
if(flag > 0) printf("China > Chinese\n");
else if(flag <0) printf("China < Chinese\n");
else printf("China == Chinese\n");
运行上述代码的输出结果是:
China < Chinese
函数调用的一般形式:
strlen(字符串)
其作用是计算字符串的长度,结果以函数值的形式得到。字符串的长度是字符串中字符的个数,不包括字符串结束标记'\0'在内。可以计算字符串常量和字符数组中字符串的长度,例如:
char str1[30] = "China";
printf("%d\n", strlen(str1));
printf("%d\n", strlen("Chinese"));
5. 字符串大小写转换函数strlwr和strupr
strlwr函数和strupr函数调用的一般形式:
strlwr(字符数组名)
strupr(字符数组名)
strlwr函数的作用是将字符串中的所有大写字母转换成对应的小写字母。strupr函数的作用是将字符串中的所有小写字母转换成对应的大写字母。
相同函数
例:从键盘输出一个字符串,不使用strlen函数,计算并输出该字符串的长度。
思路分析:计算字符串的长度实际上就是统计一个字符串中共有多少个字符,是一个典型的计数问题。这类问题使用循环结构来实现,从字符串的第1个字符开始计数,当碰到字符串结束标记'\0'为止。
参考答案:
#include <stdio.h>
#include <string.h>
int main()
{
char str[]; //定义字符数组存放字符串
int length;
printf("Input a String:");
gets(str); //输入一个字符串,存放在数组str中
length = ; //长度初始值为0
while(str[length] != '\0')
{
length++;
}
printf("length=%d\n", length);
return ;
}
结果示例: