一、字符串函数
strcpy( )
一般形式:
char *strcpy(字符数组名1,字符数组名2 或 字符串2)
功能:把字符数组2中的字符串复制到字符数组1中,串结束 标志‘\0’也一同复制。与strcat函数一样,字符数组1也必须定 义得足够大,以便容纳被复制的字符串。字符数组1的长度不 应小于字符串2的长度。
不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。如下面两行都是不合法的:
str1=″China″; str1=str2;
而只能用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′;
strlen( )
一般形式:
int strlen(字符串)
功能:计算出字符串的长度(不含字符串结束标志‘\0’), 并将该长度作为函数返回值。
如:char str[10]={″China″}; printf(″%d″,strlen(str));
输出结果不是10,也不是6,而是5。也可以直接测试字符串常量的长度,如strlen(″China″);
strcmp( )
一般形式:
int strcmp(字符串1,字符串2)
功能:按照ASCII码值得大小逐个比较两个字符串的对应字符,直到值不相等或遇到’\0’结束比较。具体规则如下: 如果字符串1=字符串2,函数值为0。 如果字符串1>字符串2,函数值为一正整数。 如果字符串1<字符串2,函数值为一负整数。
strlwr( )
一般形式:
char *strlwr(字符串)
功能:将字符串中的大写字母转换成小写字母,小写字符与其它字符不变。
strupr( )
一般形式:
char *strupr(字符串)
功能:将字符串中的小写字母转换成大写字母,大写字符与其它字符不变。
案例分析
输入一字符串,长度小于50,统计其中包含多少个单词, 单词之间用空格分隔开。例如,输入“I am a student”,输 出4。
//FileName: chap4_20.c
#include<stdio.h>
#include<string.h>
int main()
{
char s [50];
int i,m,n;
printf("input a string:\n");
gets(s);
m=strlen(s);
n=0;
if(m>0)
{
for(i=0;i<m;i++)
{
if(s[i]!=' ' && s[i+1]==' ')
n++;
}
n++;
}
printf("%d\n ",n);
return 0;
}
运行结果如下: input a string: I am a student↙ 4