C标准头文件<string.h>
里面主要包含了一些与字符串关联的函数的声明,这些函数有如下的命名规则:
- 以"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>的更多相关文章
- C标准头文件<math.h>
定义域错误可以理解为超出了函数的适用范围,如果发生了定义域错误,设errno为EDOM 如果结果不能表示为double值,则发生值域错误,如果结果上溢,则函数返回HUGE_VAL的值,设errno为E ...
- C标准头文件<stdio.h>
是很多人学C语言接触的第一个头文件,顾名思义,stdio就是"标准输入输出",其中声明了一组关于输入输出的类型,宏和函数,其中就包括了打印著名的"hello,world! ...
- C标准头文件<assert.h>
<assert.h>定义了两个用来调试程序的宏: assert和NDEBUG,assert用来判断表达式是否为真,如果为真继续执行,如果为假,向stderr输出一条错误消息,并调用< ...
- C标准头文件<ctype.h>
主要包括了一些字符识别和转换函数 字符判断 isalnum() //函数原型 #include<ctype.h> int isalum(int c); 功能:如果输入的字符是字母(alph ...
- C标准头文件<signal.h>
信号即异常,或者理解为中断,一个进程接收到一个信号,如果没有处理机制,就会按照默认的处理方式进行处理,而默认的处理方式通常是终止当前进程或忽略该信号.当然,程序也可以编写相应的处理信号的函数,一旦接收 ...
- C标准头文件<errno.h>
声明了错误处理相关的宏 errno errno即error number,在程序启动时被设为0,当某个库函数运行出现错误的时候,会将相应的能表达错误类型的数字赋值给这个左值,这些数字往往有相应的宏来表 ...
- C标准头文件<stdlib.h>
是个大杂烩,里面声明了从动态内存分配到常用算法等各种函数和宏 #数据类型 **size_t** **wchar_t** **div_t**是一个结构体类型,也是div()返回的类型 **ldiv_t* ...
- 头文件string.h,cstring与string
string.h string.h是一个C标准头文件,所有的C标准头文件都形如name.h的形式,通过#include <string.h>可以导入此头文件.之后我们就可以在程序中使用st ...
- c标准头文件
好多C语言库函数参考还是用的TC的库函数参考,因此特地把现在C语言(C99)标准库函数的24个头文件列表如下:assert.h types.h(C99) signal.h stdlib.h c ...
随机推荐
- Bootstrap~学习笔记索引
回到占占推荐博客索引 bootstrap已经用了有段时间了,感觉在使用上还是比较容易接受的,在开发人员用起来上,也还好,不用考虑它的兼容性,手机,平台,PC都可以有效的兼容. bootstrap官方a ...
- php相对于java、js几点不太一样的地方
1.PHP 变量作用域 在 PHP 中,可以在脚本的任意位置对变量进行声明. 变量的作用域指的是变量能够被引用/使用的那部分脚本. PHP 有三种不同的变量作用域: local(局部) global( ...
- 专业上的常用的工具和类库集 By 老衣
Visual Studio 2013 扩展 CodeMaid: 可快速整理代码文件,清理不必要的代码和杂乱的格式.并在开发时实时提供代码复杂度的报告,以便帮助开发人员降低代码复杂度.提高代码质量. C ...
- MyCAT日志分析
MyCAT日志对于了解MyCAT的运行信息不可获取,譬如MyCAT是否采用读写分离,对于一个查询语句,MyCAT是怎样执行的,每个分片会分发到哪个节点上等等. 默认是info级别,通过log4j.xm ...
- DevExpress控件安装、汉化使用教程
前言 DevExpress是一个庞大的控件库,也很是好用(没用过,听说),但是要收费. 网上关于DevExpress的教程满天飞,我找了一下午也没找到正确的安装.简单实用教程,还是自己摸索吧. 自己动 ...
- android view 中各函数的执行顺数
这个就好像是 activity 的生命周期一样,如果我们要使用自定义的 view,那么就很有必要了解一下 view 的那些能够被重写的函数的执行顺序.废话不多讲,以常用的5个函数为例子,见下文: pa ...
- 包含块( Containing block ) 转自W3CHelp
包含块简介 在 CSS2.1 中,很多框的定位和尺寸的计算,都取决于一个矩形的边界,这个矩形,被称作是包含块( containing block ). 一般来说,(元素)生成的框会扮演它子孙元素包含块 ...
- RAC某节点启动遭遇ORA-01105,ORA-01606
环境:RHEL6.5 + Oracle11.2.0.4 双节点RAC 故障现象:节点1实例没有启动成功,节点2正常启动. 1.故障现象 2.解决过程 3.总结 1.故障现象 尝试启动RAC 节点1,遭 ...
- 从 github 上 fork repositories 后,如何和原仓库同步?
1. 首先要先确定一下是否建立了主repo的远程源: git remote -v 2. 如果里面只能看到你自己的两个源(fetch 和 push),那就需要添加主repo的源: git remote ...
- C#设置文件权限
在开发中,我们经常会使用IO操作,例如创建,删除文件等操作.在项目中这样的需求也较多,我们也会经常对这些操作进行编码,但是对文件的权限进行设置,这样的操作可能会手动操作,现在介绍一种采用代码动态对文件 ...