C语言--简单小代码1

说明:以下内容摘自《C程序设计语言》,自己编写等
(《The C Programming Language》   Brian W.Kernighan,Dennis M.Ritchie)

1)

for(p = head; p != NULL; p = q){

        q = p->next;

        free(p);

    }

 

2)Union的对齐使用:

typedef long Align;

union header{

    struct{

        union header *ptr;

        unsigned size;

    }s;

    Align x;

}

 

3)-(char)((unsigned char)~0) >> 1)  signed char最小值的求法

 

4)

while((c = getchar()) != EOF)   putchar(c);

 

5)strcpy:

void strcpy(char *s, char *t)

{

    while(*s++ = *t++);

}

 

6)strcmp:

int strcmp(char *s, char *t)

{

    for(; *s == *t; s++, t++)

        if(*s == '\0') return 0;

    return *s - *t;

}

7)进栈标准用法   *p++ = val;

    出栈标准用法   val = *--p;

 

8)strcat:

void strcat(char *s, char *t)

{

    while(*s) s++;

    while(*s++ = *t++);

}

 

9)squeeze: delete all c from s

squeeze(char s[], int c)

{

    int i, j;

    for(i = j = 0; s[i] != '\0'; i++)

        if(s[i] != c) s[j++] = s[i];

    s[j] = '\0';

}

 

11)bitcount: count 1 bits in x

int bitcount(unsigned x)

{

    int b = 0;

    while(x){

        x &= x - 1;

        ++b;

    }

    return b;

}

 

12)

for(i = 0; i < n; i++)

printf("m%c", a[i], (i % 10 == 9 || i == n - 1) ? '\n' : ' ');

 

printf("You have %d item%s.\n", n, n == 1 ? "" : "s");


 

13)printd: print n in Decimal

void printd(int n)

{

    if(n < 0){

        putchar('-');

        n = -n;  

    }

    if(n / 10) printd(n /10);

    putchar(n % 10 + '0');

}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值