输入一个字符串,找出第一个出现一次的字符.
将字符窗中的用户id打印转为整数并+1打印. Myuseradd
"u3:x:502:502::/home/uu3:/bin/bash"
数据指头:“1a2b” ,数据针尾:"3c4d" 有效数据提出来.(有点难)
Bzero():
地址 0的个数, 从该地址存n个0,与buf用
Char buf[100];随即值
Bzero(buf, sizeof(buf));
Struct tt abc;
Bzero (&abc, sizeof(abc));
Memset() 地址 , 值, 个数 放什么都可以
Memset(buf, 0, sizeof(buf)); 改写bzero() 更强
Atoi(); 字符串转整数 找到不是数字字符的
Char buf[]="12.345";
Atoi(buf); 12
Atoi(buf+2); 0
Atoi(buf+4); 45
Sprintf (); 地址 printf ();输出终端
Sprintf ();数转为字符串
Sprintf (buf, "%d",num); 字符串连接整合
数->字符串->翻转
Strlen() 地址 计算字符串长度,不包括 '\0'
Char buf[]="al\0sk\0djf";
Strlen(buf); 2
Strlen(buf+2); 0 找'\0'
Strlen(buf+3); 2
Strcmp() 地址 地址 比较两个字符串
返回值 0 == 1> -1 <
相同位置的ASCII码
Char buf[]="bbcde";
Char *p="bc";
Strcmp(buf,p); -1
Strcmp(buf+2,p); 1
Strcmp(p+1,buf+3); -1
Strcpy(); 地址 地址 字符串复制 带'\0'
Char buf[]="abc\0de\0f";
Char p[]="qw\0er\0oiu";
Strcpy(buf,p);
Strcpy(p,buf+3);
Strcpy(p+2,buf+4);
Strcat(); 地址 地址 连接两个字符串 先找'\0',再cpy
Strcpy,strcat何时一样
地址1==='\0'
Char buf[]="abcdeef";
Strcpy(buf, buf+1); buf: "bcdeef\0"; 在小不变
把buf中第一个字母删除掉.
Strchr(); 地址 字符 在字符串中找字符
返回值 找到:地址 没有:NULL mmap返回值-1 NULL地址也使用
Char buf[]="abcdeef";
Strchr(buf,'c'); buf+2
Strstr(); 地址 地址 在字符串中找字符串
返回值 找到 地址 没有 NULL
Char buf[]="abcdeef";
Strstr(buf, "ecd"); NULL
While(p == strstr(buf, "__")); 两个空格
Strcpy(p,p+1);
一次两个空格 思想很重要
内存管理
Malloc free 到底干什么
Malloc:堆上 c++ new (封装malloc)
申请字符串 指针数组:argv
Char **argv;
-> malloc(sizeof(char *)*(n+1)); 1 空指针 NULL
Argv[0]->malloc(strlen(+1)); ''\0'
Execvp();
变长结构体: 变长数组
Struct tt{
Int size;
Struct tt *next;
Char /int arr[100];-> int arr[]; 最后一个成员 名字 首地址
};
Sizeof(struct tt); 8
P=malloc(sizeof(struct tt)) +20;+10, +5;
P->size=10;
Strcpy(p->arr, "xiaoming");
P=malloc();
Free(p);
P? P=NULL;
代码 天天见
Apue
1,文件操作 3,4,5,14,(select ,poll,mmap);
所有文件相关命令,用C实现从mp3中提取专辑相片
练习:
Mycat file
Mycp file file2 (读写) 提高:带权限
Mywc file 统计文件行数大小
Myhead -q file
Mytail -7 file
Mysort file
Mydiff file file2 是否相同
Mytt abc bcdef file
Ls -l -S 目录 /文件 提高:mycp 复制链接文件,目录
比较两个目录是否一样 提高:目录包括子目录
2多进程 2~3 7,8,9,13,守护进程
进程间通讯 通讯方式 传数据,非数据
Getsid(); 10信号(非数据) 15管道
Myshell :hello world
1,管道
2,mkfifo 最简单
3,消息队列
4共享内存
5套接字 socket
非数据
1,信号
2,PV操作 信号量
3,多线程,线程之间的同步,网络编程 tcp udp 广播
11,12 线程间同步 16
1,mutex(最快)
2,死锁
3,读写锁
4条件变量
Pthread_mutex_t;
Pthread_rwlock_t;
Pthread_cond_t; 创建 工作
4,嵌入式web服务器
聊天
网络广播