Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12419
  • 博文数量: 8
  • 博客积分: 187
  • 博客等级: 入伍新兵
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-16 09:53
文章分类
文章存档

2012年(8)

我的朋友
最近访客

分类: LINUX

2012-07-10 09:40:49

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

本章说明了字符串处理库的字符串操作函数,讲师将总结这些函数,每个函数(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[]=“” ;//初始化字符数组

  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=

Strcat(s1,s2)=happy 

Strncat(s3,s1,6)=happy

Strcat(s3,s1)=happy happy 

转载源地址: 

阅读(532) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~