zoukankan      html  css  js  c++  java
  • apue 20130317

    Gets(buf);buf[i]  for (;buf;)

     

    While(buf[i]) i++;字符的ASCII值做判断

    For (;buf[i];);  能放在后边空语句

    For (i=0;buf[i]==buf0[i];i++);空语句

     

    Ch=getchar();

    Gets(buf);

     

    For (i=0;buf[i];i++)

    最后什么条件结束

    Gets(buf1);

    For (i=0;buf2[i]=buf1[i];i++)

    退出条件

    Return ;exit(),_exit();进程

    Strcpy

    Strcat

    For (i=0;buf1[i];i++)

    For (j=0;buf1[i]=buf2[j];j++,i++)

     

    Strstr

    Gets(buf1);

    Gets(buf2);

    字符串的处理函数

    重复使用buf

    Bzero  memset  atoi   sprintf

    Strlen strcpy  strcat  strcmp  strchr  strstr

    Strncpy  strncmp  n的多

    Memcpy memcmp  内存  

    20个数组左右

    Man string.h帮助文件档

     

    为什么使用指针

    指针:变量用来保存地址

    小端pc

    大端网络

    读的顺序

     

    指针保存边号,每个地址对应一个字符

    编号永远不会变,数据变

     

    定义:数据类型*指针类型

    Int *p;  p,q本身没有区别

    Char *q;

    1,*p,*q

    2 p+1 q+1  指针也在内存中占地址

    3 p-q=3 3个数据单元

    还是指针类型3个字符char * 3个数

    4指针比较p>q 哪能个前哪个后没有p+q无意义没有乘除

     

     

    Int a=10,b=9,c=0,tmp=0;

    Int *pa=&a,*pb=&b,*pc=&c,*ptmp=&tmp;

    C=*pa+*pb;

    *pa=c-*pa;

    *pb=*pa+*pb;

    *pc=*pb;

    Ptmp=pc;

    *ptmp=*pb+*pa;

    Ptmp=pb;

    Pa=pb;

    *ptmp\*pa-*pc;

    *pb=*pa+*pb;

    A b c tmp

     

     

    0x12 a 

    0x 23 b

    0x 34 c

    0x 45 tmp

       Pa 0x12

    Pb0x23

    Pc0x34

    Ptmp0x45

     

     

    Qt

     

    1 tat -xvzf qt

    2 cd qt 

    3./configure

    4.O

    5.Yes

    6.Make

    7.Make install

     

    指针与数组:减少代码量多了操作数据方法

    Char *p=buf strlen

    Gets(buf);

    While(*p)  p++;

    P-buf  地址差

    相距多少个数据单元

    把数组练习用指针

     

    编写mystrcpy使用指针操作

    编写mystr实现字符串的反转

     

    While(*p)  p++;

    Len=p-buf;

    有乱码'\0'

    Q=q-1;

    While(p<q)

    指针写字符串

    Char buf[]="abcdefg";

    Char *str="abcdefg";常量的起始地址

    Sizeof(buf); 7

    Sizeof(str);   4

    Sizeof(buf);  6

    Sizeof(str);  6

    Buf[0]='b';

    *str='b';段错误

    段错误

    操作非法数据,除了合法数据之外的数据

    合法数据:程序已经定义的数据

    Char *p;

    Gets(p);四字节

    Char buf[100];

     

    多级指针

    Char *******p;

    Char ch='a';

    Char *p;

    P=&a;

    二级指针:1作为函数的参数

    2一级指针+malloc=指针数组

    Myshell

    1 myshell ls

    2  ls -l

    3  ls -l -a

    4  容错

    5 cd   /tmp

    6  ls -l >abc

    7  ls-l | grep "abc"

     

    换指针  换内容

     

    从键盘上输入5个字符串,打印出最长的字符串

    从键盘上输入5个字符串,按字符串大小升序输出

     

     

     

     

  • 相关阅读:
    左孩子右兄弟的字典树
    UVA 1401 Remember the Word
    HDOJ 4770 Lights Against Dudely
    UvaLA 3938 "Ray, Pass me the dishes!"
    UVA
    Codeforces 215A A.Sereja and Coat Rack
    Codeforces 215B B.Sereja and Suffixes
    HDU 4788 Hard Disk Drive
    HDU 2095 find your present (2)
    图的连通性问题—学习笔记
  • 原文地址:https://www.cnblogs.com/wangjingyuwhy/p/2965067.html
Copyright © 2011-2022 走看看