string.h函数总结以下的函数使用时 都是入口参数  我们修改相应的入口参数进行试验
1     #ifndef __STRING_NO_EXPORTSusing ::std::size_t;using ::std::memcpy;//xtern void *memcpy(void *dest, void *src, unsigned int count);
//  功能:由src所指内存区域复制count个字节到dest所指内存区域using ::std::memmove;//            memmove() 用来复制内存内容,其原型为:
//    void * memmove(void *dest, const void *src, size_t num);
//memmove() 与 memcpy() 类似都是用来复制 src 所指的内存内容前 num 个字节到 dest 所指的地址上。
//不同的是,memmove() 更为灵活,
//当src 和 dest 所指的内存区域重叠时,memmove() 仍然可以正确的处理,不过执行效率上会比使用 memcpy() 略慢些。using ::std::strcpy;// char *strcpy(char* dest, const char *src); 拷贝一个字符串到另一个
//把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
//.src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针using ::std::strncpy;//char *?strncpy(char *dest, char *src,size_t num);
//复制src中的内容(字符,数字、汉字....)到dest,复制多少由num的值决定,
//返回指向dest的指针。如果遇到null字符('\0'),且还没有到num个字符时,就用(num - n)
//(n是遇到null字符前已经有的非null字符个数)个null字符附加到destination。using ::std::strcat;//char *strcat(char *dest,char *src);字符串拼接函数
//把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
//src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。using ::std::strncat;//char *strncat(char *dest,char *src,int n);
//把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的'\0')
//并添加'\0'。src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。using ::std::memcmp;
//基本原型 int memcmp(const void *buf1, const void *buf2, unsigned int count);
//主要功能
//比较内存区域buf1和buf2的前count个字节。
//返回值
//当buf1<buf2时,返回值<0
//当buf1=buf2时,返回值=0
//当buf1>buf2时,返回值>0using ::std::strcmp;//int strcmp(const char *s1,const char * s2);
//比较字符串s1和s2。
//当s1<s2时,返回值<0
//当s1==s2时,返回值=0
//当s1>s2时,返回值>0
//即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。using ::std::strncmp;//int?strncmp(char *str1, char *str2, int maxlen);
//此函数功能即比较字符串str1和str2的前maxlen个字符。
//如果前maxlen字节完全相等,返回值就=0;
//在前maxlen字节比较过程中,如果出现str1[n]与str2[n]不等,则返回(str1[n]-str2[n])。using ::std::strcasecmp;//         int?strcasecmp?(const char *s1, const char *s2);
//strcasecmp()用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异。
//若参数s1和s2字符串相等则返回0。
//s1大于s2则返回大于0 的值。
//s1 小于s2 则返回小于0的值。using ::std::strncasecmp;
//int?strncasecmp(const char *s1, const char *s2, size_t n)
//strncasecmp()用来比较参数s1和s2字符串前n个字符,比较时会自动忽略大小写的差异,
//若参数s1和s2字符串相同则返回0?
//s1若大于s2则返回大于0的值
//s1若小于s2则返回小于0的值.using ::std::strcoll;
//  以下是与strcoll() 函数的声明。
//int strcoll(const char *str1, const char *str2)
//          str1?-- 这是第一个要比较的字符串。
//          str2?-- 这是第二个进行比较的字符串。
//  这个函数的返回值如下:
//          如果返回值<0,则表明str1小于str2
//          如果返回值,如果> 0,则表明str2?小于 str1
//          如果返回值= 0,则表明str1?等于str2//默认情况下(LC_COLLATE为"POSIX"或"C")和strcmp一样根据ASCII比较字符串大小,这个时候是没有区别的。//对于设置了LC_COLLATE语言环境的情况下,则根据LC_COLLATE设置的语言排序方式进行比较。例如:汉字,根据拼音进行比较。//2、strcmp是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值。//比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ASCII码值确定,从左向右比较,//如果遇到不同字符,所遇第一对不同字符的大小关系就确定了两个字符串的大小关系//,如果未遇到不同字符而某个字符串首先结束,那么这个字符串是较小的,否则两个字符串相等。using ::std::memchr;
//           库函数 void *memchr(const void *str, int c, size_t n)
//在参数 str 所指向的字符串的前 n 个字节中搜索第一次出现字符 c(一个无符号字符)的位置。
//声明
//下面是 memchr() 函数的声明。
//void *memchr(const void *str, int c, size_t n)
//参数
//str -- 指向要执行搜索的内存块。
//c -- 以 int 形式传递的值,但是函数在每次字节搜索时是使用该值的无符号字符形式。
//n -- 要被分析的字节数。
//返回值
//该函数返回一个指向匹配字节的指针,如果在给定的内存区域未出现字符,则返回 NULL。
//实例
//下面的实例演示了 memchr() 函数的用法。
//实例
//#include <stdio.h>
//#include <string.h>
//
//int main ()
//{//   const char str[] = "http://www.runoob.com";
//   const char ch = '.';
//   char *ret;
//
//   ret = (char*)memchr(str, ch, strlen(str));
//
//   printf("|%c| 之后的字符串是 - |%s|\n", ch, ret);
//
//   return(0);
//}using ::std::strchr;//char *strchr(char *str,char c);  在一个串中查找给定字符的第一个匹配之处using ::std::strcspn;
//          C 库函数 size_t strcspn(const char *str1, const char *str2) 检索字符串 str1 开头连续有几个字符都不含字符串 str2 中的字符。
//声明
//下面是 strcspn() 函数的声明。
//size_t strcspn(const char *str1, const char *str2)using ::std::strpbrk;
//          C 库函数 char *strpbrk(const char *str1, const char *str2)
//检索字符串 str1 中第一个匹配字符串 str2 中字符的字符,不包含空结束字符。
//也就是说,依次检验字符串 str1 中的字符,当被检验字符在字符串 str2 中也包含时,则停止检验,并返回该字符位置。
//声明
//下面是 strpbrk() 函数的声明。
//char *strpbrk(const char *str1, const char *str2)
//参数
//str1 -- 要被检索的 C 字符串。
//str2 -- 该字符串包含了要在 str1 中进行匹配的字符列表。
//返回值
//该函数返回 str1 中第一个匹配字符串 str2 中字符的字符数,如果未找到字符则返回 NULL。
//实例
//下面的实例演示了 strpbrk() 函数的用法。
//#include <stdio.h>
//#include <string.h>
//int main ()
//{//   const char str1[] = "abcde2fghi3jk4l";
//   const char str2[] = "34";
//   char *ret;//   ret = strpbrk(str1, str2);
//   if(ret)
//   {//      printf("第一个匹配的字符是: %c\n", *ret);
//   }
//   else
//   {//      printf("未找到字符");
//   }
//
//   return(0);
//}
//让我们编译并运行上面的程序,这将产生以下结果:
//第一个匹配的字符是: 3using ::std::strrchr;
//          C 库函数 char *strrchr(const char *str, int c) 在参数 str 所指向的字符串中搜索最后一次出现字符 c(一个无符号字符)的位置。
//声明
//下面是 strrchr() 函数的声明。
//char *strrchr(const char *str, int c)
//参数
//str -- C 字符串。
//c -- 要搜索的字符。以 int 形式传递,但是最终会转换回 char 形式。
//返回值
//该函数返回 str 中最后一次出现字符 c 的位置。如果未找到该值,则函数返回一个空指针。
//实例
//下面的实例演示了 strrchr() 函数的用法。
//实例
//#include <stdio.h>
//#include <string.h>
//
//int main ()
//{//   int len;
//   const char str[] = "https://www.runoob.com";
//   const char ch = '.';
//   char *ret;
//
//   ret = strrchr(str, ch);
//
//   printf("|%c| 之后的字符串是 - |%s|\n", ch, ret);
//
//   return(0);
//}
//让我们编译并运行上面的程序,这将产生以下结果:
//|.| 之后的字符串是 - |.com|using ::std::strspn;
//          C 库函数 size_t strspn(const char *str1, const char *str2) 检索字符串 str1 中第一个不在字符串 str2 中出现的字符下标。
//声明
//下面是 strspn() 函数的声明。
//size_t strspn(const char *str1, const char *str2)
//参数
//str1 -- 要被检索的 C 字符串。
//str2 -- 该字符串包含了要在 str1 中进行匹配的字符列表。
//返回值
//该函数返回 str1 中第一个不在字符串 str2 中出现的字符下标。
//实例
//下面的实例演示了 strspn() 函数的用法。
//#include <stdio.h>
//#include <string.h>
//int main ()
//{//   int len;
//   const char str1[] = "ABCDEFG019874";
//   const char str2[] = "ABCD";//   len = strspn(str1, str2);//   printf("初始段匹配长度 %d\n", len );
//
//   return(0);
//}
//让我们编译并运行上面的程序,这将产生以下结果:
//初始段匹配长度 4using ::std::strstr;
//          C 库函数 char *strstr(const char *haystack, const char *needle) 在字符串 haystack 中查找第一次出现字符串 needle 的位置,不包含终止符 '\0'。//声明
//下面是 strstr() 函数的声明。//char *strstr(const char *haystack, const char *needle)
//参数
//haystack -- 要被检索的 C 字符串。
//needle -- 在 haystack 字符串内要搜索的小字符串。
//返回值
//该函数返回在 haystack 中第一次出现 needle 字符串的位置,如果未找到则返回 null。//实例
//下面的实例演示了 strstr() 函数的用法。//#include <stdio.h>
//#include <string.h>//int main()
//{//   const char haystack[20] = "RUNOOB";
//   const char needle[10] = "NOOB";
//   char *ret;//   ret = strstr(haystack, needle);//   printf("子字符串是: %s\n", ret);
//
//   return(0);
//}
//让我们编译并运行上面的程序,这将产生以下结果://子字符串是: NOOBusing ::std::strtok;
//          C 库函数 char *strtok(char *str, const char *delim) 分解字符串 str 为一组字符串,delim 为分隔符。//声明
//下面是 strtok() 函数的声明。//char *strtok(char *str, const char *delim)
//参数
//str -- 要被分解成一组小字符串的字符串。
//delim -- 包含分隔符的 C 字符串。
//返回值
//该函数返回被分解的第一个子字符串,如果没有可检索的字符串,则返回一个空指针。//实例
//下面的实例演示了 strtok() 函数的用法。//实例
//#include <string.h>
//#include <stdio.h>
//
//int main () {//   char str[80] = "This is - www.runoob.com - website";
//   const char s[2] = "-";
//   char *token;
//
//   /* 获取第一个子字符串 */
//   token = strtok(str, s);
//
//   /* 继续获取其他的子字符串 */
//   while( token != NULL ) {//      printf( "%s\n", token );
//
//      token = strtok(NULL, s);
//   }
//
//   return(0);
//}
//让我们编译并运行上面的程序,这将产生以下结果://This is
// www.runoob.com
// website
#ifndef __STRICT_ANSI__using ::std::strtok_r;
#endifusing ::std::_strtok_r;using ::std::memset;
//  void *memset(void *str, int c, size_t n) 复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。//声明
//下面是 memset() 函数的声明。//void *memset(void *str, int c, size_t n)
//参数
//str -- 指向要填充的内存块。
//c -- 要被设置的值。该值以 int 形式传递,但是函数在填充内存块时是使用该值的无符号字符形式。
//n -- 要被设置为该值的字节数。
//返回值
//该值返回一个指向存储区 str 的指针。//实例
//下面的实例演示了 memset() 函数的用法。//#include <stdio.h>
//#include <string.h>//int main ()
//{//   char str[50];//   strcpy(str,"This is string.h library function");
//   puts(str);//   memset(str,'$',7);
//   puts(str);
//
//   return(0);
//}
//让我们编译并运行上面的程序,这将产生以下结果://This is string.h library function
//$$$$$$$ string.h library functionusing ::std::strerror;
//          char *strerror(int errnum) 从内部数组中搜索错误号 errnum,并返回一个指向错误消息字符串的指针。strerror 生成的错误字符串取决于开发平台和编译器。//声明
//下面是 strerror() 函数的声明。//char *strerror(int errnum)
//参数
//errnum -- 错误号,通常是 errno。
//返回值
//该函数返回一个指向错误字符串的指针,该错误字符串描述了错误 errnum。//实例
//下面的实例演示了 strerror() 函数的用法。//#include <stdio.h>
//#include <string.h>
//#include <errno.h>//int main ()
//{//   FILE *fp;//   fp = fopen("file.txt","r");
//   if( fp == NULL )
//   {//      printf("Error: %s\n", strerror(errno));
//   }
//
//  return(0);
//}
//让我们编译并运行上面的程序,这将产生以下结果,因为我们尝试打开一个不存在的文件://Error: No such file or directoryusing ::std::strlen;
//          unsigned int strlen(char *s);
//计算字符串s的(unsigned int型)长度,不包括'\0'在内.返回s的长度,不包括结束符NULLusing ::std::strlcpy;using ::std::strlcat;using ::std::_membitcpybl;using ::std::_membitcpybb;using ::std::_membitcpyhl;using ::std::_membitcpyhb;using ::std::_membitcpywl;using ::std::_membitcpywb;using ::std::_membitmovebl;using ::std::_membitmovebb;using ::std::_membitmovehl;using ::std::_membitmovehb;using ::std::_membitmovewl;using ::std::_membitmovewb;#endif /* __STRING_NO_EXPORTS *///
//      1   void *memchr(const void *str, int c, size_t n)
//在参数 str 所指向的字符串的前 n 个字节中搜索第一次出现字符 c(一个无符号字符)的位置。
//2 int memcmp(const void *str1, const void *str2, size_t n)
//把 str1 和 str2 的前 n 个字节进行比较。
//3 void *memcpy(void *dest, const void *src, size_t n)
//从 src 复制 n 个字符到 dest。
//4 void *memmove(void *dest, const void *src, size_t n)
//另一个用于从 src 复制 n 个字符到 dest 的函数。
//5 void *memset(void *str, int c, size_t n)
//复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。
//6 char *strcat(char *dest, const char *src)
//把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。
//7 char *strncat(char *dest, const char *src, size_t n)
//把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止。
//8 char *strchr(const char *str, int c)
//在参数 str 所指向的字符串中搜索第一次出现字符 c(一个无符号字符)的位置。
//9 int strcmp(const char *str1, const char *str2)
//把 str1 所指向的字符串和 str2 所指向的字符串进行比较。
//10    int strncmp(const char *str1, const char *str2, size_t n)
//把 str1 和 str2 进行比较,最多比较前 n 个字节。
//11    int strcoll(const char *str1, const char *str2)
//把 str1 和 str2 进行比较,结果取决于 LC_COLLATE 的位置设置。
//12    char *strcpy(char *dest, const char *src)
//把 src 所指向的字符串复制到 dest。
//13    char *strncpy(char *dest, const char *src, size_t n)
//把 src 所指向的字符串复制到 dest,最多复制 n 个字符。
//14    size_t strcspn(const char *str1, const char *str2)
//检索字符串 str1 开头连续有几个字符都不含字符串 str2 中的字符。
//15    char *strerror(int errnum)
//从内部数组中搜索错误号 errnum,并返回一个指向错误消息字符串的指针。
//16    size_t strlen(const char *str)
//计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。
//17    char *strpbrk(const char *str1, const char *str2)
//检索字符串 str1 中第一个匹配字符串 str2 中字符的字符,不包含空结束字符。也就是说,依次检验字符串 str1 中的字符,当被检验字符在字符串 str2 中也包含时,则停止检验,并返回该字符位置。
//18    char *strrchr(const char *str, int c)
//在参数 str 所指向的字符串中搜索最后一次出现字符 c(一个无符号字符)的位置。
//19    size_t strspn(const char *str1, const char *str2)
//检索字符串 str1 中第一个不在字符串 str2 中出现的字符下标。
//20    char *strstr(const char *haystack, const char *needle)
//在字符串 haystack 中查找第一次出现字符串 needle(不包含空结束字符)的位置。
//21    char *strtok(char *str, const char *delim)
//分解字符串 str 为一组字符串,delim 为分隔符。
//22    size_t strxfrm(char *dest, const char *src, size_t n)
//根据程序当前的区域选项中的 LC_COLLATE 来转换字符串 src 的前 n 个字符,并把它们放置在字符串 dest 中。
————————————————
版权声明:本文为CSDN博主「位文杰TOP」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36958104/article/details/97246539

string.h函数库详解相关推荐

  1. PHP PDO函数库详解

    PDO是一个"数据库访问抽象层",作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力:与ADODB和MDB2相比,PDO更高 ...

  2. php中的¥row,PHP PDO函数库详解

    PDO是一个"数据库接见抽象层",感化是同一各类数据库的接见接口,与mysql和mysqli的函数库比拟,PDO让跨数据库的应用更具有亲和力:与ADODB和MDB2比拟,PDO更高 ...

  3. FifoBuffer函数库详解

    FFmpeg 项目里面有一个 fifo 的实现 ,fifo 的全称是 first in first out (先进先出),而且这是一个环形的buffer内存管理器,代码实现在 libavutil/fi ...

  4. OpenGL函数库详解

    1.glClear(GLbitfield mask); 功能:用预先设置的值清除缓冲区. 参数说明:mask指定被刷新的缓冲区,可以是GL_COLOR_BUFFER_BIT. GL_DEPTH_BUF ...

  5. c语言标准库详解(七):字符串函数string.h

    c语言标准库详解(七):字符串函数<string.h> 头文件<string.h>中定义了两组字符串函数.第一组函数的名字以 str 开头:第二组函数的名字以 mem 开头.除 ...

  6. C语言 -- string.h中函数功能详解与手动实现 - 02(常用函数memcpy、memmove、strcpy、strdup、strcat、strtok...)

    内容预览 3.5.搬迁类型 --- 函数功能详细说明 :将内存空间中内容移动.复制到另一内存空间 3.6.搬迁类型 --- 函数功能测试与手动实现 3.6.1.memcpy.memccpy 3.6.2 ...

  7. c语言标准库详解(十四):时间函数time.h

    c语言标准库详解(十四):时间函数<time.h> 概述 头文件<time.h>中声明了一些处理日期与时间的类型和函数.其中的一些函数用于处理当地时间,因为时区等原因,当地时间 ...

  8. C++ time.h 库详解

    C++ time.h 库详解 time.h 是C++常用标准库之一 常用函数 clock localtime asctime ctime difftime gmtime time tzset strf ...

  9. c语言标准库详解(十二):非局部跳转setjmp.h

    c语言标准库详解(十二):非局部跳转<setjmp.h> 概述 头文件<setjmp.h>中的声明提供了一种不同于通常的函数调用和返回顺序的方式,特别是,它允许立即从一个深层嵌 ...

最新文章

  1. Android开发之Service通过Messenger实现线程间的通信
  2. JavaScript数据类型
  3. 105.敏捷开发模型
  4. 物联网通讯协议:MQTT,NB-IOT,Zigbee,CoAP,RFID,BLUETOOTH,NFC,4G,HTTP
  5. JMockit 1.37 示例
  6. setcellvalue 格式_Java Cell.setCellValue方法代码示例
  7. “留给美团的机会不多了!” | 畅言
  8. 三菱mode bus tcp通讯_微服务中的异步消息通讯和事件驱动,你了解多少?
  9. 同济大学 线性代数 第六版 pdf_【课后习题答案】工程数学线性代数同济第六版+课后习题答案...
  10. 内控堡垒机:内网安全威胁的“终结者”
  11. WebView基本使用
  12. Java基础-GUI入门-Swing详解
  13. SpringUtil 工具类
  14. 第十四章 结构和其他数据形式
  15. 网易云信第三方接口调用超详细Demo
  16. 懈寄生---走出软件作坊:三五个人十来条枪 如何成为开发正规军(十四)[转]...
  17. keras中的early stopping
  18. 【读点论文】Deep Learning Face Representation by Joint Identification-Verification,深度学习应用在优化问题上,deepid2
  19. 论文笔记——Sparse R-CNN
  20. 基于模型的系统工程最佳实践-读书心得

热门文章

  1. 全国首发!北京在全市推进实施电子劳动合同
  2. 搭建个人网站--优秀个人网站小结
  3. Kubernetes v1.22.0 正式发布,众多 API 和功能被移除
  4. 着色器(Shader)之顶点着色器
  5. 第五届“泰迪杯”数据分析技能赛 经验代码分享
  6. 华天成对讲广播话机(触屏式)
  7. 前端知识体系1:【css/js/vue/es6/手写/安全/优化】
  8. 网络流量监控及流量异常检测
  9. 从一个空白芯片开始制作arduino uno最小系统板
  10. H5移动端实现仿QQ空间照片上传效果代码