字符串处理函数

来源:互联网 发布:软件测试 课程介绍 编辑:程序博客网 时间:2024/06/05 07:57

输入字符串函数gets和输出字符串函数puts
puts函数用于输出一个以’\0’结尾的字符串,调用格式如下

调用格式puts(字符数组);puts函数输出的字符串可以包含转义字符。char str[]="world";puts(str);输出结果为:worldchar str[]="hello\nworld";puts (str);输出结果为:helloworld

gets函数用于输入一个字符串

调用格式gets(字符数组);将一个字符串存放到字符数组中,并且得到一个函数值,即gets函数的返回值是存放输入字符串的字符数组的起始地址。例如char str[10];gets(str);

字符串测长度函数strlen
strlen函数用于测量字符串的长度,函数值为实际的字符串长度,不包含’\0’所占的位置。

strlen(字符数组);char str[]={"hello"};printf("%d",strlen(str));

strlen函数还可以直接测量字符串常量的长度。

strlen("hello");

字符串比较函数strcmp
在C语言中不允许下列形式比较函数

if(str1==str2){printf("相等");}

字符串比较不能用关系运算符,只能用strcmp函数,其调用形式如下
strcmp(字符串1,字符串2);
完成字符串1与字符串2的关系比较,即对两个字符串自左到右逐个字符按照ascll码值相比,直到出现不同字符或遇到’\0’为止,比较的结果由函数值获得。

char str1[5],str2[5];int n;n=strcmp(str1,str2);

如果字符串1等于字符串2,函数值n等于0;
如果字符串1大于字符串2,函数值为一个正数;
否则函数值为负数。

字符串复制函数strcpy和strncpy
C语言中不允许赋值语句直接将一个字符串赋给另一个字符数组,即

str1="hello";str2=str1;

字符串复制必须使用strcpy函数,字符串复制函数,是将字符串一个字符一个字符的复制,知道遇到’\0’为止,其中,对’\0’字符也一起复制,调用格式如下

strcpy(字符数组1,字符数组2)将字符数组2复制到字符数组1中时,字符数组2的空间必须足够大。

字符数组1必须是字符数组名的形式,字符串2可以是字符数组名或字符串常量,strncpy函数是将字符串2中的前n个字符复制到字符数组1中。
如果需要复制字符串2中的前面若干字符,则可以指出需要复制的字符数,调用格式如下

strncpy(字符数组1,字符串2,字符数)strncpy(str1,str2,2);把str2中的前两个字符复制到str1中,str1再加上一个结束'\0'

字符串连接函数
strcat函数用于连接两个以’\0’结尾的字符串。调用格式

strcat(字符数组1,字符数组2);char s1[]="hello";char s2[]="world";strcat(s1,s2);运行后输出 helloworld。将字符串2连接到字符串1的后面,结果放在字符数组1中,所以s1的字符数组必须足够长。

例题
把一个字符串复制到另一个字符串中国,即完成strcpy函数的功能
程序分析:
把源字符串中的字符一个一个地传送到目标字符数组中的对应位置,直到遇到字符串结束标志‘\0’。

#include<stdio.h>#include<string.h>main(){    char a[10],b[10];    int i;    gets(a);    i=0;    while(a[i]!='\0')    {        b[i]=a[i];        i++;    }    b[i]='\0';    puts(b);}
原创粉丝点击