C语言string.h头文件函数 | 您所在的位置:网站首页 › c语言cstring › C语言string.h头文件函数 |
PS:本文包含了大部分strings函数的说明,并附带举例说明。本来想自己整理一下的,发现已经有前辈整理过了,就转了过来。修改了原文一些源码的问题,主要是用char *字义字符串的问题,导致程序运行时崩溃。另外自己重写了部分测试程序,使其更能满足自己测试的需要。不当之处,还请海涵。
@函数原型: char *strdup(const char *s)
函数功能: 字符串拷贝,目的空间由该函数分配 函数返回: 指向拷贝后的字符串指针 参数说明: src-待拷贝的源字符串 所属文件: [cpp] view plain copy #include #include #include int main() { char *dup_str, *string="abcde"; dup_str=strdup(string); printf("%s", dup_str); free(dup_str); return 0; }@函数名称: strcpy 函数原型: char* strcpy(char* str1,char* str2); 函数功能: 把str2指向的字符串拷贝到str1中去 函数返回: 返回str1,即指向str1的指针 参数说明: 所属文件: [cpp] view plain copy #include #include int main() { char string[10]; char *str1="abcdefghi"; strcpy(string,str1); printf("the string is:%s\n",string); return 0; }@函数名称: strncpy 函数原型: char *strncpy(char *dest, const char *src,intcount) 函数功能: 将字符串src中的count个字符拷贝到字符串dest中去 函数返回: 指向dest的指针 参数说明: dest-目的字符串,src-源字符串,count-拷贝的字符个数 所属文件: [cpp] view plain copy #include #include int main() { char*src = "bbbbbbbbbbbbbbbbbbbb";//20 'b's char dest[50] ="aaaaaaaaaaaaaaaaaaaa";//20 'a's puts(dest); strncpy(dest, src, 10); puts(dest); return0; } 输出: [cpp] view plain copy /******************************************* aaaaaaaaaaaaaaaaaaaa bbbbbbbbbbaaaaaaaaaa *******************************************/ 注意:strncpy只复制指定长度的字符,不会自动在末尾加'\0'。若指定长度超过源字符串长度,不够的部分补‘\0’,
@函数名称: strcat 函数原型: char* strcat(char * str1,char * str2); 函数功能: 把字符串str2接到str1后面,str1最后的'\0'被取消 函数返回: str1 参数说明: 所属文件: [cpp] view plain copy #include #include int main() { char buffer[80]; strcpy(buffer,"Hello "); strcat(buffer,"world"); printf("%s\n",buffer); return 0; }@函数名称: strncat 函数原型: char *strncat(char *dest, const char *src, size_t maxlen) 函数功能: 将字符串src中前maxlen个字符连接到dest中 函数返回: 参数说明: 所属文件: [cpp] view plain copy #include #include char buffer[80]; int main() { strcpy(buffer,"Hello "); strncat(buffer,"world",8); printf("%s\n",buffer); strncat(buffer,"*************",4); printf("%s\n",buffer); return 0; } 注意:与strncpy不同的是,strncat会自动在末尾加‘\0’,若指定长度超过源字符串长度,则只复制源字符串长度即停止
@函数名称: strcmp 函数原型: int strcmp(char * str1,char * str2); 函数功能: 比较两个字符串str1,str2. 函数返回: str1str2,返回正数. 参数说明: 所属文件: [cpp] view plain copy #include #include int main() { char *buf1="aaa", *buf2="bbb",*buf3="ccc"; int ptr; ptr=strcmp(buf2, buf1); if(ptr>0) printf("buffer 2 is greater thanbuffer 1\n"); else printf("buffer 2 is less thanbuffer 1\n"); ptr=strcmp(buf2, buf3); if(ptr>0) printf("buffer 2 is greater thanbuffer 3\n"); else printf("buffer 2 is less thanbuffer 3\n"); return 0; }
@函数名称: strncmp 函数原型: int strncmp(char *str1,char *str2,int count) 函数功能: 对str1和str2中的前count个字符按字典顺序比较 函数返回: 小于0:str1str2 参数说明: str1,str2-待比较的字符串,count-比较的长度 所属文件: [cpp] view plain copy #include #include int main() { char str1[] ="aabbc";// char str2[] = "abbcd";// //为使测试程序更简练,此处假定了strncmp只返回-1,0,1三个数 char res_info[] = {''}; int res; //前1个字符比较 res = strncmp(str1, str2, 1); printf("1:str1%c str2\n", res_info[res+1]); //前3个字符比较 res = strncmp(str1, str2, 3); printf("3:str1%c str2\n", res_info[res+1]); }输出: [cpp] view plain copy /**************************************** 1:str1= str2 3:str1 |
CopyRight 2018-2019 实验室设备网 版权所有 |