开发者

C语言中的编码小技巧

目录
  • C语言编码小技巧
    • 1. 退出程序
    • 2. 注释(相当于“删除”)一段代码
    • 3.  数据溢出问题
    • 4. 增加程序的可读性
    • 5. Oj 1062 避免读取无关 '\n' 小技巧
    • 6. 输入若干值时的用法 
    • 7. while搭配 ' , ' 的用法http://www.devze.com( 感受一下  ' , ' 的灵活和魅力!)
    • 8.  const的用法(跟在哪个后面,哪个不变)
    •  9. 最精简字符串赋值
    • 10. 求数组元素个数 
  • 总结

    C语言编码小技巧

    1. 退出程序

    其中"EXIT_FAILUwww.devze.comRE"和"EXIT_SUCCESS"包含在头文件  <stdlib.h> 中。

    exit(EXIT_FAILURE);    //异常退出,相当于exit(1)
    exit(EXIT_SUCCESS);    //正常退出,相当于exit(0)

    还有一种就是  '   _exit( )  '   ,它和 '  exit( )  ' 的区别就是,前者退出进程会清理I/O缓冲区,后者直接结束进程进入到内核中。

    编程客栈

    2. 注释(相当于“删除”)一段代码

    除了  "  //  "  、"  /*  " 以外,比较保险的注释方式为(statements表示被注释的部分)

    #if  0
        statements
    #endif

    * 因为如果这段代码内部原先就有注释存在,这样做就会出现问题,要从逻辑上删除一段C语言代码,更好的办法如上。 

    3.  数据溢出问题

    while(gets(input)!=NULL)

    许多同学可能会这样写,但其实它可能会存在 input 数据溢出的现象,因此最好用 fgets

    while(fgets(input)!=NULL)

    4. 增加程序的可读性

    为了增加程序的可读性,我们可以引用  #define 来定义比如把  0  用  OUT ,  1  用  IN  表示

    补充:这边对于  define  的用法还存在一种解读,它可以用于多个相同字面符的同时修改

    5. Oj 1062 避免读取无关 '\n' 小技巧

    scanf(" %c%c%c",&a,&b,&c);

    可以搭配循环使用,原题如下

    1062: ASCII码排序 (----循环 字符)

    题目描述

    输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。

    输入

    输入数据有多组,每组占一行,有三个字符组成,之间无空格。

    输出

    对于每组输入数据,输出一行,字符中间用一个空格分开。

    样例输入

    qwe asd zxc

    样例输出

    e q w a d s c x z

    因为每次想要输入下一行的时候,都会先输入换行符,所以需要加一个空来吸收,代码如下:

    #include<stdio.h>
    int main()
    {
      char a,b,c,d;
      while(scanf(" %c%c%c",&a,&b,&c)!=EOF)
      {开发者_C入门
      
        if(a>b) d=a,a=b,b=d; 
        if(a>c) d=a,a=c,c=d;
        if(b>c) d=b,b=c,c=d;
        printf("%c %cwww.devze.com %c\n",a,b,c);
      }
    }

    6. 输入若干值时的用法 

    想必你也注意到:

    while(scanf(" %c%c%c",&a,&b,&c)!=www.devze.comEOF) 

    这是用于输入若干值时的用法,与 它等价的还有:

    while(~scanf(" %c%c%c",&a,&b,&c)) 

    7. while搭配 ' , ' 的用法( 感受一下  ' , ' 的灵活和魅力!)

    while(scanf(" %d",&n)!=EOF,n!=-1) ;    //适用于末尾以 ' -1 ' 作为结尾的函数

    8.  const的用法(跟在哪个后面,哪个不变)

    int const *pci;    //指向整型常量的指针
    int *const pci;    //指向整型的常量指针

     9. 最精简字符串赋值

    while(*to++=*from++);    //因为 '\0' 的ASCII码为 0 !

    10. 求数组元素个数 

    sizeof(array)/sizeof(array[0])

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜