c语音进阶
字符函数和字符串函数
字符分类函数
表达式为真 返回非0整数;为假,返回0
字符转换函数
如果不是需要的字母 ,则不改变
字符串函数(头文件都是 string.h) strlen(计算字符串)
- string length(长度)
- **返回值 size_t(无符号整型 内存中以补码计算) 类型 接收 char* 指针(就是地址) **
- 字符串必须包含\0 返回值是字符串长度
strcpy(拷贝字符串)
- string copy(复制)
- char* 返回的是目标空间首地址,接收 char* 目标空间 和char* 类型的源头数据
- 源字符串必须有\0为结束标志
- 目标空间需要足够大,必须可以修改(*P=“ad”常量字符串不可修改)
strncpy(按位拷贝)
- 用法与strcpy一致 但是可以控制拷贝的字符个数
- 源字符串不强求 \0 但是不会自动加\0,如果源字符串字符不够 就补\0
strcat(末尾追加字符串)
- string concatenate(连接、拼接)
- char* 返回的是目标空间首地址,接收 char* 目标空间 和 char* 类型的源头数据
- 源字符串必须有\0为结束标志
- 目标空间需要足够大,必须可以修改(*P=“ad”常量字符串不可修改)
strncat
- 用法和strcat一致,但是可以控制追加的字符个数
- 源字符串不强求\0 会自动在末尾加\0,如果源字符串不够也不会补\0
strcmp(字符串比较)
- string compare(比较)
- 当str1>str2 返回0>;当str1<str2 返回0<;当str1=str2 返回0=
- 接收两个字符串 按位比较 当前ascll码值相等比下一个,直到“不同”或者“结束”
strncmp
- 用法和strcmp一样 但是可以控制最多比较字符的个数
- 比较时会灵活一些
strstr(查找字符串里的字符串)
- string string (字符串)
- char*是返回找到字符串的首地址,接收char*被查找字符串,接收char*要查找字符串
- 查找不到字符串时 返回NULL
strtok (分割字符串)
- string token(标点符号)
- char*返回当前分割字符串的首地址,没有更多子字符串时 返回NULL
- 首次调用传地址和分隔符 后续调用传NULL和分隔符
strerror(输出错误消息)
- string error(错误)把系统错误码转换成人能看懂的错误文本字符串
- 接收一个整型,再将对应的错误信息首地址存放到errno(全局变量,头文件errno.h)
perror
- perror==printf+strerror
c语言内存函数(string.h 头文件)
memcpy(内存块拷贝)
- memory copy(内存 拷贝)
- void* 返回目标首地址,接收void* 目标地址,接收void* 传输地址,接收size_t 个拷贝字节数量
- memcpy拷贝地址 不关注内容 如果地址有重叠 结果未定义
memmove (内存拷贝)
- memory move(内存 移动)
- 用法和memcpy一致 但是可以拷贝内存重叠
- memcpy只考了其中一种可能
memset (内存设置)
- memory sat (设置)
- void* 返回目标地址首地址;void接收要设置的内存空间;int 接收要设置的值,会强转为 unsigned char数据进行设置;size_t 接收要设置的内存空间*
- 如果想用于整形数组设置值 只能用于置0,因为他是以字节为单位设置 整形是四个字节 得出数字会很大
