里面主要包含了一些与字符串关联的函数的声明,这些函数有如下的命名规则:

  • 以"mem"开头的函数操作任意的字符序列
  • 以"strn"开头的函数操作非空字符序列
  • 以"str"开头的函数操作空字符结尾的字符序列

数据类型

size_t

NULL

函数

复制

memcpy()

/*
功能:从s2指向的对象中复制n个字符到s1指向的对象中,如果s1和s2有重叠,则结果未定义
参数:
返回值:返回s1
*/
void* memcpy(void* s1, const void* s2,size_t n);

memmove()

/*
功能:从s2指向的对象中复制n个字符到s1指向的对象中,即使s1,s2有重叠,仍可正常复制
参数:
返回值:
*/
void* memmove(void* s1, const void* s2, size_t n);

strcpy()

/*
功能:把s2指向的串(包括'\n')复制到s1指向的数组中,如果s1,s2重叠,则结果未定义
参数:
返回值:
*/
char* strcpy(char* s1, const char* s2);

strncpy()

/*
功能:从s2指向的数组中复制最多n和字符(到'\n'为止),如果s1,s2重叠,则结果未定义
参数:
返回值:
*/
char* strncpy(char* s1,const char* s2,size_t n);

strcat()

/*
功能:把s2指向的串(包括'\n')的副本添加到s1指向的串的末尾,会覆盖s1的原本的'\n'
参数:
返回值:
*/
char* strcat(char* s1, const char* s2);

strncat()

/*
功能:把s2指向的串(包括'\n')的副本的最多n个字符(到'\n'为止)添加到s1指向的串的末尾,会覆盖s1的原本的'\n'
参数:
返回值:
*/
char* strncat(char* s1, const char* s2, size_t n);

比较

memcmp()

/*
功能:将s1指向的对象的前n个字符和s2指向的对象的前n个字符进行比较
参数:
返回值:s1的相应字符大于等于小于s2的相应字符时,分别返回一个大于等于小于0的整数
*/
int memcmp(const void* s1,const void* s2, size_t n);

strcmp()

/*
功能:对s1指向的串和s2指向的串进行比较
参数:
返回值:s1串的>,=,<s2串时,分别返回一个/>,<,=0的整数
*/
int strcmp(const char* s1, const char* s2);

strcoll()

/*
功能:将s1串和s2串进行比较,比较时串都被解释为适合当前区域设置的类型LC_COLLATE形式
参数:
返回值:
*/
int strcoll(const char* s1,const char* s2);

strncmp()

/*
功能:比较s1串和s2串最多n个字符
参数:
返回值:
*/
int strncmp(const char* s1, const char* s2, size_t n);

strxfrm()

/*
功能:转换s2指向的串,并把结果串复制到s1指向的数组中
参数:
返回值:成功返回转换串的长度,如果返回的值是n或者更大,则s1指向的数组的内容是不确定的
*/
size_t strxfrm(char* s1,const char* s2, size_t n);

查找

memchr()

/*
功能:确定c在s指向的对象的前n个字符中第一次出现的位置
参数:
返回值:
*/
void* memchr(const void* s, int c, size_t n);

strchr()

/*
功能:确定c在s指向的串中第一次出现的位置
参数:
返回值:
*/
char* strchr(const char* s, int c);

strcspn()

/*
功能:计算s1指向的字符串中完全不是s2指向的串中的字符组成的最大初始段长度
参数:
返回值:
*/
size_t strcspn(const char* s1, const char* s2);

strpbrk()

/*
功能:确定s2指向的串中的任意字符在s1指向的串中第一次出现的位置
参数:
返回值:
*/
char* strpbrk(const char* s1, const char* s2);

strrohr()

/*
功能:确定c在s指向的串中最后一次出现的位置,'\n'被看作串的一部分
参数:
返回值:
*/
char* strchr(const char* s, int c);

strspn()

/*
功能:计算s1指向的字符串中完全由s2指向的串中的字符组成的最大初始段的长度
参数:
返回值:
*/
size_t strspn(const char* s1, const char* s2);

strstr()

/*
功能:函数strstr确定s2指向的串的字符序列在s1指向的串中第一次出现的位置
参数:
返回值:
*/
char* strstr(const char *s, const char* s2);

strtok()

/*
功能:对strtok()的连续调用把s1指向的串分解为一系列记号,每个记号都由s2指向的串中的字符界定
参数:
返回值:
*/
char* strstr(const char* s1, const char* s2);

其他

memset()

/*
功能:把c的值复制到s指向的对象的前n个字符的每个字符中
参数:
返回值:
*/
void* memset(void* s, int c, size_t n);

strerror()

/*
功能:将errnum中的错误编号对应到一个错误信息串
参数:
返回值:
*/
char* strerror(int errnum);

strlen()

/*
功能:计算s指向的串的长度
参数:
返回值:
*/
size_t strlen(const char* s);

C标准头文件<string.h>的更多相关文章

  1. C标准头文件<math.h>

    定义域错误可以理解为超出了函数的适用范围,如果发生了定义域错误,设errno为EDOM 如果结果不能表示为double值,则发生值域错误,如果结果上溢,则函数返回HUGE_VAL的值,设errno为E ...

  2. C标准头文件<stdio.h>

    是很多人学C语言接触的第一个头文件,顾名思义,stdio就是"标准输入输出",其中声明了一组关于输入输出的类型,宏和函数,其中就包括了打印著名的"hello,world! ...

  3. C标准头文件<assert.h>

    <assert.h>定义了两个用来调试程序的宏: assert和NDEBUG,assert用来判断表达式是否为真,如果为真继续执行,如果为假,向stderr输出一条错误消息,并调用< ...

  4. C标准头文件<ctype.h>

    主要包括了一些字符识别和转换函数 字符判断 isalnum() //函数原型 #include<ctype.h> int isalum(int c); 功能:如果输入的字符是字母(alph ...

  5. C标准头文件<signal.h>

    信号即异常,或者理解为中断,一个进程接收到一个信号,如果没有处理机制,就会按照默认的处理方式进行处理,而默认的处理方式通常是终止当前进程或忽略该信号.当然,程序也可以编写相应的处理信号的函数,一旦接收 ...

  6. C标准头文件<errno.h>

    声明了错误处理相关的宏 errno errno即error number,在程序启动时被设为0,当某个库函数运行出现错误的时候,会将相应的能表达错误类型的数字赋值给这个左值,这些数字往往有相应的宏来表 ...

  7. C标准头文件<stdlib.h>

    是个大杂烩,里面声明了从动态内存分配到常用算法等各种函数和宏 #数据类型 **size_t** **wchar_t** **div_t**是一个结构体类型,也是div()返回的类型 **ldiv_t* ...

  8. 头文件string.h,cstring与string

    string.h string.h是一个C标准头文件,所有的C标准头文件都形如name.h的形式,通过#include <string.h>可以导入此头文件.之后我们就可以在程序中使用st ...

  9. c标准头文件

    好多C语言库函数参考还是用的TC的库函数参考,因此特地把现在C语言(C99)标准库函数的24个头文件列表如下:assert.h types.h(C99)  signal.h  stdlib.h   c ...

随机推荐

  1. AD域内DNS服务器如何解析公网域名

    原创地址:http://www.cnblogs.com/jfzhu/p/4022999.html 转载请注明出处 AD域内需要有DNS服务器,用于解析域内的计算机名,但是域内的计算如何解析公网的域名呢 ...

  2. 老司机学新平台 - Xamarin Forms开发框架二探 (Prism vs MvvmCross)

    在上一篇Xamarin开发环境及开发框架初探中,曾简单提到MvvmCross这个Xamarin下的开发框架.最近又评估了一些别的,发现老牌Mvvm框架Prism现在也支持Xamarin Forms了, ...

  3. 未找到与约束 ContractName Microsoft.VisualStudio.Text.ITextBufferFactoryService RequiredTypeIdentity Microsoft.VisualStudio.Text.ITextBufferFactoryService

    问题:vs2013在装了 之后,重启,打开VS提示: 未找到与约束 ContractName Microsoft.VisualStudio.Text.ITextBufferFactoryService ...

  4. Eclipse启动参数

    from 网络 eclipse 启动参数 -clean2013-- : eclipse 启动参数介绍(如添加插件时,如果不显示,则使用eclipse -clean启动) 其实,Eclipse是一个可以 ...

  5. Tomcat的目录结构

    bin:该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat6.exe.tomcat6w.exe,前者是在控制台下启动Tomcat,后者是弹出UGI窗口启动T ...

  6. Atitit  图像处理Depixelizing Pixel Art像素风格画的矢量化

    Atitit  图像处理Depixelizing Pixel Art像素风格画的矢量化 在去年的时候,偶然看到hqx算法. 一个高质量的插值放大算法. 与双线性插值等插值算法相比,这个算法放大后对人眼 ...

  7. JAVA理论概念大神之概念汇总

    我个人觉得,JAVA之所以能够经久不衰,有一个很重要的原因就是:JAVA的理论总是给人一种,虽然不知道是什么,但是感觉很厉害的样子.就单是这一点,他就已经超越许多其他语言了,至少吹牛的时候谈资总是很多 ...

  8. Ajax_04之jQuery中封装的Ajax函数

    1.PHP中json_encode编码规则: PHP索引数组编码为JSON:[...] PHP关联数组编码为JSON:{...}2.jQuery中AJAX封装函数之load: ①使用:$('选择器') ...

  9. lua解释执行脚本流程

    #include "lua.hpp" #include <iostream> using namespace std; #pragma comment(lib, &qu ...

  10. WebService中使用Aspose.Cells.dll

    首先,目前我是在Json里面使用的,然后关于HTML+WebService+Json怎么使用,可以看看Jsonp跨域的相关例子. 本次的实现原理是:通过HTML传送参数到WebService,然后在W ...