首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

字符串处置库的操作函数总结

2012-08-17 
字符串处理库的操作函数总结字符串处理库提供了许多有用的函数,分别用来操作字符串数据、比较字符串、在字符

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

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

Strncat(s3,s1,6)=happy

Strcat(s3,s1)=happy happy www.lirenedu.org



[解决办法]
顶下楼主
[解决办法]
总结的不错
[解决办法]
第四个函数打错了 是strncat
[解决办法]
为什么不直接打开string.h文件看呢?
[解决办法]

探讨

为什么不直接打开string.h文件看呢?

[解决办法]
直接看头文件塞。
[解决办法]
为什么不看manpage呢?

snprintf自动封0.
strncpy手动封buffer[sizeof(buffer) - 1] = 0;
strncat自动封0.

差不多了。

热点排行