zoukankan      html  css  js  c++  java
  • apue 20130322

    输入一个字符串,找出第一个出现一次的字符.

    将字符窗中的用户id打印转为整数并+1打印. Myuseradd

    "u3:x:502:502::/home/uu3:/bin/bash"

    数据指头:“1a2b” ,数据针尾:"3c4d"  有效数据提出来.(有点难)

     

    Bzero():

         地址  0的个数,  从该地址存n0,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,信号

    2PV操作 信号量

    3,多线程,线程之间的同步,网络编程 tcp udp  广播

      11,12  线程间同步  16

    1,mutex(最快)  

    2,死锁

    3,读写锁

    4条件变量

    Pthread_mutex_t;

    Pthread_rwlock_t;

    Pthread_cond_t;   创建  工作

    4,嵌入式web服务器

     聊天

     网络广播

     

  • 相关阅读:
    著名的二分查找的BUG
    C/C++ static用法
    浅谈C++虚函数
    git备忘(长久更新)
    【经典问题】最大子串和
    水波纹效果
    博客迁址 xpeng.scorpionstudio.com
    终于,我们的新产品Fotor Slideshow Maker上线了!!
    分享一款浏览器扩展--美图搜索-图片搜索工具
    分享网页微信防撤回插件
  • 原文地址:https://www.cnblogs.com/wangjingyuwhy/p/2976370.html
Copyright © 2011-2022 走看看