首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

字符串处理库的操作函数

字符串处理库的操作函数

本帖最后由 happem 于 2012-7-17 12:26 编辑

字符串处理库的操作函数
字符串处理库提供了许多有用的函数,分别用来操作字符串数据、比较字符串、在字符串中查找字符和其他字符串、标记字符串(将字符串划分为逻辑段)和确定字符串的长度。

本章说明了字符串处理库的字符串操作函数,里仁嵌入式培训讲师将总结这些函数,每个函数(strncpy除外)都在结果之后追加空字符。

Char *strcpy(char *s1,const char* s2) 将字符串s2复制到数组s1中,返回s1的值
Char *strncpy(char *s1,const char* s2,size_tn) 将字符串s2中的最多n个字符复制到数组s1中,返回s1的值
Char *strcat(char *s1,const char* s2) 将字符串s2追加在s1之后,s2的第一个字符将覆盖s1的空字符,返回s1的值

Char *strcpy(char *s1,const char* s2
,size_tn) 将字符串s2最多n字符追加到数组s1中,s2的第一个字符覆盖s1的空字符,返回s1的值


注意,函数strncpy和strncat规定的参数类型是size_t。类型size_t是标准定义的类型,作为运算符sizeof返回值的类型。


函数strcpy将它的第2参数复制到第1个参数中,函数strncpy和strcpy类似,只是strncpy规定了从字符串复制到数组中的字符个数,注意,函数strncpy并不需要复制第2个参数的空字符,仅仅在要复制的字符个数比字符串长度至少小1的情况下,才复制空字符。例如,如果test是第2个参数,则仅仅在strcpy的第3个参数长度至少为5的情况下,才能复制空字符,如果第3个参数大于5,则在写入第3个参数规定的字符个数之后,在数组后追加空字符。


下面里仁嵌入式培训学院进一步讲解使用strcpy将数组x中的整个字符串复制到数组y中,并使用strncpy将数组x的前14个字符复制到数组z中。因为程序中对strncpy的调用并没有写入空字符,因此在数组z之后追加了空字符(‘\0’).


/*
使用strcpy和strncpy */


#include<stdio.h>


#include<string.h>


Int main()


{

Char x []=“Happy Birthday to you”;//初始化字符数组x
Char y [25]; //创建字符数组y
Char z [15];//创建字符数组z
/* 将x中的内容复制到y*/
Printf(“%s%s\n%s%s\n”,“the string in array x is:”x,“the string in array y is:”strcpy(y,x));
//复制x中的前14个字符到z中,不复制空字符
Strncpy(z,x,14);
Z[14]=‘\0’; //结束z中的字符串
Print(“the string in array z is:%s\n”,z)
Return 0 ; //表示程序成功结束
}//函数main结束
The string in array x is:Happy birthday to
you

The string in array y is: happy birthday to you
The string in array z is:happy birthday to you
函数strcat将第2个参数追加到第1个参数之后,第2个参数的第1个字符将取代第1个参数中结束字符串的空字符(‘\0’).程序员必须确保用于存储第1个字符串的数组有足够的空间来存储第1个字符串、第2个字符串和空字符,函数strncat将来自第2个字符串的指定个数的字符串追加到第1个字符串中,并在结果后自动追加空字符。里仁嵌入式培训学院讲解函数strcat和函数strncat的使用。
//使用strcat和strncat

#include<stdio.h>

#include<string.h>
Int main()

{


Char s1[20]=
“happy”;//初始化字符数组s1


Char s2[]=
www.lirenedu.org” ;//初始化字符数组


Char
s3[40]=
“”;//初始化字符串数组s3


Printf
(“strncat(s3,s1,6)=%s\n”,strncat(s3,s1,6));


//
将s1连接到s3


Printf
(“strcat(s3,s1)=%s\n”,strcat(s3,s1));


Return 0; //
表示程序成功结束

}//函数main结束
S1=happy
S2=www.lirenedu.org
Strcat(s1,s2)=happy www.lirenedu.org
Strncat(s3,s1,6)=happy
Strcat(s3,s1)=happy happy www.lirenedu.org
嵌入式培训 http://www.lirenedu.org/
返回列表