字符串、字符、字节

来源:互联网 发布:微信辅助软件 编辑:程序博客网 时间:2024/06/14 04:39
《C与指针》读书笔记
1.字符串基础
字符串就是一串零个或多个字符,并且以一个位模式为0的NUL字节结尾。NUL字节是字符串的终止符,但它本身不是字符串的一部分,所以字符串的长度不包括NUL字节。
2.字符串长度
size_t strlen(char const *string);
3.不受限制的字符串函数
3.1 复制字符串
char *strcpy(char *dst,char const *src);
这个函数把参数src的字符串复制到了dst参数,如果参数src和dst在内存中出现重叠,其结果是未定义的。
3.2 连接字符串
char *strcat(char *dst,char const *src);
strcat 函数要求dst参数原先已经包含了一个字符串。它找到这个字符串的末尾,并把src字符串的一份拷贝添加到这个位置。如果src和dst的位置发生重叠,其结果是未定义的。
3.3 函数的返回值
strcpy和strcat都返回它们的第1个参数的一份拷贝。
3.4 字符串比较
int strcmp(char const *s1,char const *s2);
如果s1小于s2,strcmp函数返回一个小于零的值。如果s1大于s2,函数返回一个大于零的值。如果两个字符串相等,函数就返回零。
4 长度受限的字符串函数
char *strncpy(char *dst,char const *src, size_t len);
和strcpy一样,strncpy把源字符串的字符复制到目标数组。然而,它总是正好向dst写入len个字符。如果strlen(src)的值小于len,dst数组就用NUL字节填充到len长度。如果strlen(src)的值大于或等于len。那么只有len个字符被复制到dst。注意,他的结果将不会以NUL字节结尾。
char *strncat(char *dst,char const *src, size_t len);
与strncpy不同。它从src中最多复制len个字符到目标数组后面。但是,strncat总是在结果字符串后面添加一个NUL字节。
5.字符串查找基础
5.1 查找一个字符
char *strchr(char const *str,int ch);//第1次出现ch的位置
char *strrchr(char const *str,int ch);//最后一次出现ch的位置
5.2 查找任何几个字符
char *strpbrk(char const *str,char const *group);
这个函数返回一个指向str中第一个匹配group中任何一个字符的字符位置。否则返回NULL。
5.3 查找一个子串
char *strstr(char const *s1,char const *s2);
这个函数在s1中查找s2第一次出现的起始位置,并返回。否则返回NULL。
6 高级字符串查找
6.1 查找一个字符串前缀
size_t strspn(char const *str,char const *group);
size_t strcspn(char const *str,char const *group);
6.2 查找标记
char *strtok(char *str,char const *sep);
7.错误信息
char *strerror(int error_number);
8. 字符操作
8.1 字符分类
iscntrl;
isspace;
isdigit
isxdigit
islower
isupper
isalpha
isalnum
ispunct
isgraph
isprint
8.2 字符装换
int tolower(int ch);
int toupper(int ch);
9.内存操作
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 const *a,int ch,size_t length);







原创粉丝点击