字符串处理函数

    技术2025-07-13  15

    字符串处理函数

    #include<string.h>

    1.puts函数

    其一般形式为

    puts(字符数组)

    其作用是将一个字符串('/0'结束的字符序列)输出到终端。

    假如已定义str是一个字符数组名,且该数组已被初始化为"China"

    则执行:puts(str);

    其结果是在终端上输出"China"

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

    char str[]={"China/n Bei jing"};

    puts(str);

    输出:

    China

    Bei jing

    在输出时将字符串结束标志'/0'转换成'/n',即输出完字符串后换行。

    2.gets函数

    其一般形式

    gets(字符数组)

    其作用是从终端输入一个字符串到字符数组,并且得到一个函数值。

    该函数值是字符数组的起始地址。如执行下面的函数:

    gets(str)

    从键盘输入:

    Computer

    将输入的字符串"Computer"送给字符数组str(请注意,送给数组的共有9个字符,

    而不是8个字符),函数值为字符数组str的起始地址。

    一般利用gets函数的目的是向字符数组输入一个字符串,而不大关心其函数值。

    注意:用putsgets函数只能输出或输入一个字符串,不能写成

    puts(str1,str2)

    gets(str1,str2)

    3.strcat函数

    其一般形式为

    strcat(字符数组1,字符数组2)

    其作用是连接两个字符数组中的字符串,把字符串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'

    4.strcpystrncpy函数

    其一般形式为

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

    它是字符串复制函数,作用是将字符串2复制到字符数组1中去。

    例如:

    char str[10]='',str2[]={"China"};

    strcpy(str1,str2);

    说明:

    (1).字符数组1必须定义得足够大,以便容纳被复制的字符串。

    (2)."字符数组1"必须写成数组名形式(str1),"字符串2"可以是字符数组名,

    也可以是一个字符串常量。

    (3).如果在复制前未对str1数组赋值,则str1各字符中的内容是无法预知的,

    复制时将str2中的字符串和其后的'/0'一起复制到字符数组1中,取代字符

    数组1中的前面6个字符,最后4个字符并不一定是斜杠零,而是str1中原有

    的最后4个字节的内容。

    (4).不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。

    如下面两行都不是合法的:

    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';

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

    例如:

    strncpy(str1,str2,2);

    其作用是将str2中前面2个字符复制到str1中,取代str1中原有的最前面

    2个字符。但复制的字符个数n不应多于str1中原有的字符(不包括'/0')

    5.strcmp函数

    其一般形式为

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

    它的作用是比较字符串1和字符串2

    strcmp(str1,str2);

    strcmp("China","Korea");

    strcmp(str1,"Bei jing");

    字符串的比较规则,即对两个字符串自左至右逐个字符相比较

    (ASCII码值大小比较),直到出现不同的字符或遇到'/0'为止。

     如全部字符相同,则认为相等;则以第一个不同的字符的比较

     结果为准。

     在英文字典中位置在后面的"",小写字母比大写字母""

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

     相等,则函数值为0

     大于,则函数值为正整数;

     小于,则函数值为负整数。

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

     if(str1>str2)

     printf("yes");

     而只能用

     if(strcmp(str1,str2)>0)

     printf("yes");

     6.strlen函数

    其一般形式为:

    strlen(字符数组)

    函数的值为字符值中的实际长度(不包括'/0'在内)。例如:

     char str[10]={"China"};

     printf("%d",strlen(str));

     输出结果不是10,也不是6,而是5。也可以直接测试字符串常量的长度

    例如:

    strlen("China");

     7.strlwr函数

     其一般形式为

     strlwr(字符串函数的作用是将字符串中大写字母换成小写字母

    8.strupr函数

    其一般形式为

    strupr(字符串函数的作用是将字符串中小写字母换成大写字母

    最新回复(0)