免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1165 | 回复: 0
打印 上一主题 下一主题

[Linux资讯] 字符串处理库的操作函数(实战技巧) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-07-30 14:37 |只看该作者 |倒序浏览
字符串处理库提供了许多有用的函数,分别用来操作字符串数据、比较字符串、在字符串中查找字符和其他字符串、标记字符串(将字符串划分为逻辑段)和确定字符串的长度。

本章说明了字符串处理库的字符串操作函数,里仁嵌入式培训讲师将总结这些函数,每个函数(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

  #include

  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

#include

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)=happywww.lirenedu.org  

Strncat(s3,s1,6)=happy

Strcat(s3,s1)=happy happy www.lirenedu.org
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP