Chinaunix首页 | 论坛 | 博客
  • 博客访问: 27275
  • 博文数量: 19
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 55
  • 用 户 组: 普通用户
  • 注册时间: 2014-07-29 11:18
个人简介

登上台风的猪

文章分类

全部博文(19)

文章存档

2014年(19)

我的朋友

分类: C/C++

2014-11-06 18:05:48

PS:本文包含了大部分strings函数的说明,并附带举例说明。本来想自己整理一下的,发现已经有前辈整理过了,就转了过来。修改了原文一些源码的问题,主要是用char *字义字符串的问题,导致程序运行时崩溃。另外自己重写了部分测试程序,使其更能满足自己测试的需要。不当之处,还请海涵。

@函数原型:  char *strdup(const char *s) 

函数功能:  字符串拷贝,目的空间由该函数分配  

函数返回:  指向拷贝后的字符串指针 

参数说明:  src-待拷贝的源字符串 

所属文件:  


  1. #include    
  2. #include    
  3. #include    
  4. int main()   
  5. {   
  6.   char *dup_str, *string="abcde";   
  7.   dup_str=strdup(string);   
  8.   printf("%s", dup_str);   
  9.   free(dup_str);   
  10.   return 0;   
  11. }  

 


@函数名称:  strcpy 

函数原型:  char* strcpy(char* str1,char* str2); 

函数功能:  把str2指向的字符串拷贝到str1中去 

函数返回:  返回str1,即指向str1的指针 

参数说明: 

所属文件:  


  1. #include    
  2. #include    
  3. int main()   
  4. {   
  5.   char string[10];   
  6.   char *str1="abcdefghi";   
  7.   strcpy(string,str1);   
  8.   printf("the string is:%s\n",string);   
  9.   return 0;   
  10. }  

 


@函数名称:  strncpy 

函数原型:  char *strncpy(char *dest, const char *src,intcount) 

函数功能:  将字符串src中的count个字符拷贝到字符串dest中去 

函数返回:  指向dest的指针 

参数说明:  dest-目的字符串,src-源字符串,count-拷贝的字符个数 

所属文件:  


  1. #include   
  2. #include   
  3. int main()   
  4. {   
  5.    char*src = "bbbbbbbbbbbbbbbbbbbb";//20 'b's  
  6.    char dest[50] ="aaaaaaaaaaaaaaaaaaaa";//20 'a's  
  7.    
  8.    puts(dest);  
  9.    strncpy(dest, src, 10);  
  10.    
  11.    puts(dest);    
  12.    return0;   
  13. }  
输出:



  1. /******************************************* 
  2. aaaaaaaaaaaaaaaaaaaa 
  3. bbbbbbbbbbaaaaaaaaaa 
  4. *******************************************/  
注意:strncpy只复制指定长度的字符,不会自动在末尾加'\0'。若指定长度超过源字符串长度,不够的部分补‘\0’,


 

@函数名称:  strcat 

函数原型:  char* strcat(char * str1,char * str2); 

函数功能:  把字符串str2接到str1后面,str1最后的'\0'被取消 

函数返回:  str1 

参数说明: 

所属文件:  


  1. #include    
  2. #include   
  3. int main()   
  4. {   
  5.   char buffer[80];  
  6.   strcpy(buffer,"Hello ");   
  7.   strcat(buffer,"world");   
  8.   printf("%s\n",buffer);   
  9.   return 0;   
  10. }  

 


@函数名称:  strncat 

函数原型:  char *strncat(char *dest, const char *src, size_t maxlen) 

函数功能:  将字符串src中前maxlen个字符连接到dest中 

函数返回: 

参数说明: 

所属文件:  


  1. #include    
  2. #include   
  3. char buffer[80];  
  4. int main()   
  5. {   
  6.   strcpy(buffer,"Hello ");   
  7.   strncat(buffer,"world",8);   
  8.   printf("%s\n",buffer);   
  9.   strncat(buffer,"*************",4);   
  10.   printf("%s\n",buffer);   
  11.   return 0;   
  12. }  
注意:与strncpy不同的是,strncat会自动在末尾加‘\0’,若指定长度超过源字符串长度,则只复制源字符串长度即停止


 

@函数名称:  strcmp 

函数原型:  int strcmp(char * str1,char * str2); 

函数功能:  比较两个字符串str1,str2. 

函数返回:  str1str2,返回正数.  

参数说明: 

所属文件:  


  1. #include    
  2. #include    
  3. int main()   
  4. {   
  5.   char *buf1="aaa", *buf2="bbb",*buf3="ccc";   
  6.   int ptr;   
  7.   ptr=strcmp(buf2, buf1);   
  8.   if(ptr>0)   
  9.     printf("buffer 2 is greater thanbuffer 1\n");   
  10.   else   
  11.     printf("buffer 2 is less thanbuffer 1\n");   
  12.   ptr=strcmp(buf2, buf3);   
  13.   if(ptr>0)   
  14.     printf("buffer 2 is greater thanbuffer 3\n");   
  15.   else
阅读(260) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~