《C和指针》 读书笔记 -- 第9章 字符串、字符和字节
1.字符串以NUL结尾,但字符串长度不包括NUl字节。
2.复制字符串
char *strcpy(char *dst,char const *src);
3.连接字符串
char *strcat(char *dst,char const *src);
4.字符串比较
int strcmp(char const *s1,char const *s2);
5. 长度受限的字符串函数
char *strncpy(char *dst,char const *src,size_t len);//strlen(src)>=len 它的结果将不会以NUl字节结尾,可以buffer[BSIZE-1]='\0'来他添加NUL字节。
char *strncat(char *dst,char const *src,size_t len);
int strncmp(char const *s1,char const *s2,size_t len);
6.字符串查找基础
6.1查找一个字符串
char *strchr(char const *str,int ch);
char *strrchr(char const *str,int ch);//返回该字符串中该字符最后一次出现的位置。
e.g. ans=strchr(string,'h');
6.2查找任何几个字符
char *strpbrk(char const *str,char const *group);//返回第一个匹配的group中任何一个字符的字符位置。
6.3查找一个子串
char *strstr(char const *s1,char const *s2);
7.高级字符查找
7.1查找一个字符串前缀 (P 182)
size_t strspn(char const *str,char const *group);
size_t strcspn(char const *str,char const *group);
7.2查找标记
char *strtok(char *str,char const *sep);//strtok找到str的下一个标记,并将其用NUL结尾,然后返回一个指向这个标记的指针。
【1】如果第一个参数不是NULL,函数找到第一个标记,strtok保存其位置。
【2】如果第一个参数为NULL,函数就在同一个字符串中从这个被保存的位置开始查找下一个标记,如果没标记了,就返回NULL指针。
e.g. for(token = strtok(line,whitespace);token != NULL;token=strtok(NULL,whitespace))
printf("Next token is %s \n",token);
8.内存操作 遇到NUL不会停止操作
void *memcpy(void *dst,void const *src,size_t length);//第三个参数指定复制的长度(以字节计) ===》 memcpy(saved_answers,answers,count*sizeof(answer[0]));
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);//把从a开始的length个字节设为字符值ch。 常用!!
《C和指针》 读书笔记 -- 第9章 字符串、字符和字节的更多相关文章
- 《Linux内核设计与分析》第六周读书笔记——第三章
<Linux内核设计与实现>第六周读书笔记——第三章 20135301张忻估算学习时间:共2.5小时读书:2.0代码:0作业:0博客:0.5实际学习时间:共3.0小时读书:2.0代码:0作 ...
- 《Linux内核设计与实现》第四周读书笔记——第五章
<Linux内核设计与实现>第四周读书笔记--第五章 20135301张忻 估算学习时间:共1.5小时 读书:1.0 代码:0 作业:0 博客:0.5 实际学习时间:共2.0小时 读书:1 ...
- 《Linux内核设计与实现》读书笔记——第五章
<Linux内核设计与实现>读书笔记--第五章 标签(空格分隔): 20135321余佳源 第五章 系统调用 操作系统中,内核提供了用户进程与内核进行交互的一组接口.这些接口让应用程序受限 ...
- # linux读书笔记(3章)
linux读书笔记(3章) 标签(空格分隔): 20135328陈都 第三章 进程管理 3.1 进程 进程就是处于执行期的程序(目标码存放在某种存储介质上).但进程并不仅仅局限于一段可执行程序代码( ...
- linux读书笔记(5章)
linux读书笔记(5章) 标签(空格分隔): 20135328陈都 第五章 系统调用 5.1 与内核通信 系统调用 让应用程序受限的访问硬件设备 提供创建新进程并与已有进程通信的机制 提供申请操作系 ...
- C和指针---读书笔记。
C和指针---读书笔记.1,unsigned int 声明无符号int类型 默认是 singned,即此整数类型包括正负数.也可用于long上.说明符有 unsigned signed short ...
- 《Linux内核设计与实现》第八周读书笔记——第四章 进程调度
<Linux内核设计与实现>第八周读书笔记——第四章 进程调度 第4章 进程调度35 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配 ...
- 《Linux内核设计与实现》 第八周读书笔记 第四章 进程调度
20135307 张嘉琪 第八周读书笔记 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有 ...
- 《Linux内核分析》读书笔记(四章)
<Linux内核分析>读书笔记(四章) 标签(空格分隔): 20135328陈都 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行 ...
随机推荐
- Android 高级UI设计笔记05:使用TextView实现跑马灯的效果
1. 使用TextView属性实现跑马灯的效果: (1). 新建一个Android工程,命名为"MarqueeTextViewDemo",如下: (2). 来到activity_m ...
- Toad for Oracle 12.1下载地址
32 位版: http://us-downloads.quest.com/Repository/support.quest.com/Toad for Oracle/12.1/Software/Toad ...
- 关于JDK中正则表达式
正则表达式的构造摘要 构造 匹配 字符 x 字符 x \\ 反斜线字符 \0n 带有八进制值 0 的字符 n (0 <= n <= 7) \0nn 带有八进制值 0 的字符 nn ...
- 软件设计师考试计算机系统知识——CPU
第一章: 计算机系统知识 1.1.1计算机系统硬件的基本组成 运算器.控制器.存储器.输入设备.输出设备 1.1.2 中央处理器 ①CPU的功能: a.程序控制:CPU通过执行指令来控制程序执行的顺序 ...
- less-2
样式内嵌: 生成css: 样式运算: 生成的css文件:
- css3 transition 实现图片放大缩小
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Java Concurrency - Concurrent Collections
Data structures are a basic element in programming. Almost every program uses one or more types of d ...
- npm install --save 与 npm install --save-dev 的区别
以npm安装msbuild为例: npm install msbuild: 会把msbuild包安装到node_modules目录中 不会修改package.json 之后运行npm install命 ...
- OC1_点语法
// // Dog.h // OC1_点语法 // // Created by zhangxueming on 15/6/16. // Copyright (c) 2015年 zhangxueming ...
- (转)实战Memcached缓存系统(5)Memcached的CAS程序实例
1. 非CAS 首先看一个不是CAS的Memcached程序实例.实例的问题原型,见上一篇博文. 程序实例: package com.sinosuperman.memcached; import ja ...