【c基础】字符串、字符和字节
来源:互联网 发布:西交大软件学院 编辑:程序博客网 时间:2024/06/05 06:27
一、字符串
C语言并没有现实的字符串数据类型,字符串以字符串常量的形式出现或者存储于字符数组中。
字符串包含的字符内部不能出现NUL字节('\0')。
字符串函数:#include <string.h>
size_t strlen( char * const *string )//字符串长度函数
// size_t 是一个无符号整数类型,在头文件 stddef.h中定义 (注意两个此类型数据的差也是size_t类型,其用作条件表达式的时候要小心)
char *strcpy( char *dst, char const *src )
char *strncpy(char *dst, char const *src, size_t len )
//src的前len个字符赋值给dst所指向的字符数组,若长度不够补NUL,超出并不做检查(末尾不自动加NUL),所以len <= strlen (dst) - 1时有效
char*strcat( char *dst, char const *src )
char*strncat( char *dst, char const *src, size_t len )
//末尾自动加NUL
intstrcmp( char const *s1, char const *s2)
intstrncmp(char const *s1, char const *s2, size_t len)
字符串查找相关函数:
在一个字符中查找一个特定字符使用strchr 和 strrchr 函数
char* strchr( char const *str, int ch )
char* strrchr( char const *str, int ch )
// 前者查找ch首次出现的位置,并返回指向该位置的指针;后者返回指向最后一次出现ch的位置的指针。
查找任何几个字符的函数
char*strpbrk( char const *str, char const *group );
// 返回一个指向str中第一个匹配group中任何一个字符的位置。
查找一个子串
char*strstr( char const *s1, char const *s2 )
// 在s1中查找整个s2第一次出现的起始位置,并返回指向该位置的指针。
注:库中无 strrpbrk、strrstr 函数,根据 strpbrk、strstr 容易自己实现。
查找一个字符串前缀的函数
size_t strspn( char const *str, char const *group )
size_t strcspn( char const *str, char const *group )
// strspn返回str起始部分匹配group中任意字符的字符数;strcspn返回str起始部分不匹配group中任意字符的字符数
查找标记
char *strtok( char *str, char const *sep )
// sep定义用作分隔符的字符集合,strtok找到str的下一个标记,并将其用NUL结尾,然后返回一个指向这个标记的指针
注: 若strtok的第一个参数为NULL,就在同一字符串中继续向后查找标记。
字符
字符操作分两类:字符分类和字符转换
字符分类函数:接受一个包含字符值的整型参数,返回一个表示真假的整型值。
iscntrlisspace isdigitisxdigit islowerisupper isalphaisalnum ispunctisgraph isprint
空白字符:' ''\f'(换页) '\n'(换行)'\r'(回车) '\t'(水平制表符)'\v' (垂直制表符)
字符转换函数:转换大小写
int tolower( int ch )
int toupper( int ch )
内存操作
当数据内部包含NUL时,不能用字符串函数处理时,我们可以用下列函数处理任意字节的任意序列字符。
void*memcpy( void *dst, void const *src, size_t length )
void *memmove( void *dst, void const *src, size_t length )
void *memcmp(void const *a, void const *b, size_t length)
void *memchr(void const *a, int ch, size_t length)
void *memset(void *a, int ch, size_t length)
- 【c基础】字符串、字符和字节
- c和指针 -- 字符串、字符、字节
- 字符串,字符和字节
- 字符串,字符和字节
- 第九章 字符串、字符和字节[C和指针]
- C和指针读书笔记——字符串、字符和字节
- 《C和指针》第九章 字符串、字符和字节
- c和指针(6)字符串、字符和 字节篇
- C语言学习之字符串、字符和字节第一讲
- C语言学习之字符串、字符和字节第二讲
- C语言学习之字符串、字符和字节第三讲
- C语言中的字符串,字符和字节函数
- 【C】字符串,字符和字节(C与指针第9章)
- C字符和字符串
- C#中的流、字节、字符和字符串
- C#中的流、字节、字符和字符串
- 第九章:字符串、字符和字节
- 《C和指针》学习笔记五/数组、字符串字符和字节/
- JSP+Servlet验证码的实现
- 用exe4j将java程序转exe程序
- 【学习笔记】cocos2d 如何绘制一张图片
- Linux 文件IO — open、read、write 、lseek
- 【学习笔记】cocos2d-x 如何创建一个按钮(文本按钮、图片按钮)
- 【c基础】字符串、字符和字节
- java swing 1.6布局管理器
- 转载和积累系列 - 百度 搜索引擎中的粒度问题
- 第3.1.2节 android常用的工具
- linux 查找文件 find / -name httpd.conf
- MYSQL数据库 - 学习笔记2 - C语言操作MYSQL
- 整数十进制转换成二进制
- java 实现https请求
- USACO2.4.2 Overfencing