《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陈都 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行 ...
随机推荐
- C语言第一节 C语言程序与开发工具
开发工具的选择 可以用来写代码的工具:记事本.UltraEdit.Vim.Xcode等 选择Xcode的原因:苹果官方提供的开发利器.简化开发过程.有高亮显示功能 使用Xcode新建一个C程序的源代码 ...
- 高效的网络流dinic算法模版
#include <cstring> #include <algorithm> #include <vector> #define Maxn 120010 #def ...
- IIS 发布网站到外网
前段时间做了一个项目在局域网中测试后要发布到外网上,一时间不知怎么搞,以为直接在IIS中修改发布时的IP就可以了,但是不可行,经过摸索终于成功发布到外网,下面是具体步骤. 前期准备:公网IP,掩码,网 ...
- [原创]centos6.5 dhcpd 服务一直failed状态
因为要部署kickstart自动化系统分发,所以需要在上面配置dhcp服务器,之前也使用同样的机器进行配置,没是没有问题的,但是这次在配置了dhcpd.conf文件后,重启服务的时候却一直提示 [ro ...
- 解决Jquery和prototype的兼容问题
1. 引入jquery 时,将jquery库在 prototype之前引入: 2.使用时: jQuery.noConflict(); // 这个要在 之前加上 3.初始化加载 (这里我试过,可以有两 ...
- Android第三方授权(QQ篇)
QQ授权比微信授权相对来说会方便一些 同样需要去官网下载sdk和导入sdk到自己的工程 http://wiki.connect.qq.com/%E7%A7%BB%E5%8A%A8%E5%BA%94%E ...
- sql常识-BETWEEN 操作符
BETWEEN 操作符 操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围.这些值可以是数值.文本或者日期. SQL BETWEEN 语法 SELECT column_name(s ...
- Redis rdb文件CRC64校验算法 Java实现
查看RDB文件结构,发现最后的8字节是CRC64校验算得,从文件头开始直到8字节校验码前的FF结束码(含),经过CRC64校验计算发现,貌似最后的8字节是小端模式实现的. 参考redis的crc64实 ...
- Cocoa 框架为什么采用两阶段的方式来创建对象?
对于之前一直使用C#语言的我来说,刚开始接触Objective-c来创建对象时很迷惑,为何创建对象一般情况下需要通过发送两个消息(调用两个方法)才能创建一个类实例对象(例如[[UIButton all ...
- 学习 .net 的一些主要网站
学习 .net 的一些主要网站 来自 http://www.cnblogs.com/trymybest121/articles/500176.html http://msdn.microsoft. ...