C语言中的编码小技巧

 更新时间:2023年02月06日 09:26:20   作者:Извините.  
这篇文章主要介绍了C语言中的编码小技巧,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

C语言编码小技巧

1. 退出程序

其中"EXIT_FAILURE"和"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)
    {
     
         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 %c %c\n",a,b,c);
    }
}

6. 输入若干值时的用法 

想必你也注意到:

while(scanf(" %c%c%c",&a,&b,&c)!=EOF)  

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

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])

总结

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

相关文章

  • C语言中进行函数指针回调的实现步骤

    C语言中进行函数指针回调的实现步骤

    在 C 语言中,函数指针的回调是一种强大的编程技术,它允许我们在特定的事件发生或特定的条件满足时,调用由用户定义的函数,这种机制增加了程序的灵活性和可扩展性,使得代码更具通用性和可重用性,本文给大家介绍了C语言中进行函数指针回调的实现步骤,需要的朋友可以参考下
    2024-07-07
  • C语言函数基础教程分类自定义参数及调用示例详解

    C语言函数基础教程分类自定义参数及调用示例详解

    这篇文章主要为大家介绍了C语言函数的基础教程,主要包含C语言函数的分类,C语言函数自定义,C语言函数的参数及C语言函数的调用示例详解,有需要的朋友可以借鉴参考下
    2021-11-11
  • C++之预处理功能详解

    C++之预处理功能详解

    预处理器是 C++ 编译器提供的一个工具,允许程序员在编译之前对源代码文件做出修改,本文将给大家通过代码示例详细介绍C++的预处理功能,需要的朋友可以参考下
    2023-05-05
  • C语言中递归和排列组合详解

    C语言中递归和排列组合详解

    大家好,本篇文章主要讲的是C语言中递归和排列组合详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01
  • 获取C++变量类型的简单方法

    获取C++变量类型的简单方法

    这篇文章主要介绍了获取C++变量类型的简单方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • C语言的字符空间与非字符空间你了解吗

    C语言的字符空间与非字符空间你了解吗

    这篇文章主要介绍了C语言的字符空间与非字符空间,本文给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下,希望能给你带来帮助
    2021-08-08
  • shared_ptr线程安全性全面分析

    shared_ptr线程安全性全面分析

    正如boost文档所宣称的,boost为shared_ptr提供了与内置类型同级别的线程安全性。这包括:1. 同一个shared_ptr对象可以被多线程同时读取。2. 不同的shared_ptr对象可以被多线程同时修改成
    2013-09-09
  • C++实现学校运动会管理系统

    C++实现学校运动会管理系统

    这篇文章主要为大家详细介绍了C++实现学校运动会管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • 最新VScode C/C++ 环境配置的详细教程

    最新VScode C/C++ 环境配置的详细教程

    这篇文章主要介绍了最新VScode C/C++ 环境配置的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • 最短时间学会基于C++实现DFS深度优先搜索

    最短时间学会基于C++实现DFS深度优先搜索

    常见使用深度优先搜索(DFS)以及广度优先搜索(BFS)这两种搜索,今天我们就来讲讲什么是深度优先搜索,感兴趣的可以了解一下
    2021-08-08

最新评论