C语言:常用技巧及误用

news2024/11/16 23:34:27

   一、字符串存储在数组中

int main()
{
    char* arr[7] = {"xiaoming","zhangsan","李四"};
    printf("%s\n", arr[0]);
    printf("%s\n", arr[2]);
    return 0;
}


二、scanf()函数用法

2.1 scanf()输入字符串

int main()
{
    char arr[100];
    scanf("%s", arr);

    printf("%s\n", arr);
    for (int i = 0; arr[i] != '\0'; i++)
        printf("%c ", arr[i]);
    return 0;
}

2.2  scanf()输入格式用法

%d%d两个连在一起,输入框输入完第一个数字后,换行才能输入第二个

int main()
{
    int a, b;
    scanf("%d%d", &a,&b);
    printf("%d %d\n", a,b);
    return 0;
}

中间使用“-”间隔符,在输入框中输入完第一个数字后,输入“-”后,再输入第二个数字 

int main()
{
    int a, b;
    scanf("%d-%d", &a,&b);
    printf("%d %d\n", a,b);
    return 0;
}

 若输入1-234-56,并不是a=1,b=2,c=3,d=4...

实际上,在输入完“-”后,234会赋给b,第二个“-”会赋给c,导致格式错误

int main()
{
    int a,b,c,d,e,f;
    scanf("%d-%d%d%d-%d%d", &a,&b, &c, &d, &e, &f);
    return 0;
}


三、 printf()函数用法

3.1 “#”用法

int main()
{
    int n1 = 11,n2 = 2;
    printf("%#03d\n",n1);  //001
    printf("%#02d\n",n2);  //02
    printf("%x\n", n1);    //b
    printf("%#x\n",n1);    //0xb
    return 0;
}

3.2 限定宽度

int main()
{
    int n1 = 123;
    printf("%5d\n",n1);   //“  123”
    printf("%-5d\n", n1); //“123  ”
    return 0;
}

3.3 总是显示正负号

int main()
{
    int a = 1,b = -1;
    printf("%+d\n",a);   //+1
    printf("%+d\n",b);   //-1
    return 0;
}

3.4 输出部分字符

int main()
{
    char arr[] = "hello world";
    printf("%.5s\n",arr);   //hello
    return 0;
}


四、数字、字符互转

4.1 字符转数字

int main()
{
    int a = atoi("123");
    int b = atoi("-123");
    int c = atoi("a123");
    int d = atoi("123a");
    printf("%d\n", a);   //123
    printf("%d\n", b);   //-123
    printf("%d\n", c);   //0
    printf("%d\n", d);   //123
    return 0;
}

4.2 数字转字符

int main()
{
    char arr[100];
    int a = 123;
    sprintf(arr, "%d", a);
    printf("%s\n", arr);

    for (int i = 0; arr[i] != '\0'; i++)
        printf("%c ", arr[i]);
    return 0;
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2104436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

raksmart香港大带宽服务器地址

RAKsmart香港大带宽服务器的地址是由RAKsmart公司提供的香港机房所在地,具体地址未在公开资料中披露,但其主要特点是提供高带宽且不限制流量的服务。 RAKsmart是一家成立于2012年的美国公司,其香港机房以提供大带宽、直连内地的优化线路和丰富…

wincc 远程和PLC通讯方案

有 5个污水厂 的数据需要集中监控到1个组态软件上,软件是WINCC。每个污水厂监控系统都是独立的,已经投入运行了, 分站也是WINCC 和西门子PLC 。采用巨控远程模块的话,有两种方式:一种是从现场的PLC取数据,一种是从分站…

HubliderX将Vue3离线包打包生成App,以及解决打包后的APP出现白屏的问题(简单示例)

一、准备 HBuilderX官网,先去官网下载需要的工具到vue项目中把rooter的模式由“history”改为“hash”,否则在本地真机调试时会出现白屏 更改 vue.config.js文件,不修改的话,同样会出现白屏(原因:app打开需…

java对接斑马打印机打印标签

JAVA对接斑马打印机打印RFID标签和普通标签 1、打印RFID标签 在打印RFID标签时,如果机器在没有校准的情况下进行打印标签,此时如果还需要获取到RFID的epc值,那么打印机返回的EPC值,有可能不是当前标签的epc值。考虑到此种情形&a…

技能 | next.js服务端渲染技术

哈喽小伙伴们大家好,我是程序媛小李,今天为大家分享一项前端开发中比较主流的服务端渲染技术:next.js 首先,next.js是什么? 通俗来讲,它就是一个React框架, 它能干啥?它能实现服务端渲染. 什么是服务端渲染? 一句话它就是在服务端生成整个页面的内容,用户在客户端只需要…

VS-E5PH3006L-N3 600V 30A 高效低损耗整流器 二极管 电动 / 混动汽车电池充电的可靠之选

VS-E5PH3006L-N3参数特性: 反向电压(VR):600V,这表示该整流器在电路中能承受的最大反向电压为 600 伏特,超过此电压可能会导致器件损坏。平均整流电流(IF (AV)):30A&…

测试流程及注意事项,包括jemter和postman

一、接口测试需要考虑的地方有哪些? 1、考虑输入参数和输出参数的合法性,参数必填,默认值,参数长度和格式校验,边界等,图片长传考虑图片大小和格式。查询考虑数据排序,分页考虑分页显示等。 2…

linux 下一跳缓存,early demux(‌早期解复用)‌介绍

3.6版本以后的下一跳缓存 3.6版本移除了FIB查找前的路由缓存。这意味着每一个接收发送的skb现在都必须要进行FIB查找了。这样的好处是现在查找路由的代价变得稳定(consistent)了。3.6版本实际上是将FIB查找缓存到了下一跳(fib_nh)结构上,也就是下一跳缓存下一跳缓存…

【算法】蒙特卡洛模拟

一、引言 蒙特卡洛模拟算法是一种基于概率和统计理论的数值计算方法,通过随机抽样来近似复杂系统的概率问题。它以摩纳哥著名的赌场蒙特卡洛命名,象征着其基于随机性的特点。 二、算法原理 蒙特卡洛模拟算法的核心思想是利用随机抽样来估计一个函数的期望…

【SQL】删除表中重复数据的方法

很久之前我写入一张sql的数据表,它里面有很多重复的内容。然后我想只保留一条原始数据: 例如上面的时间,出现了很多重复值。 我最初用的是这种方法: SELECT * FROM table_name WHERE primary_key IN (SELECT max(primary_key)F…

2.4 SQL注入之高权限注入下

SQL注入之高权限注入 1.注入流程与上节实例相同 查询所有数据库名称 http://localhost/sqli-labs-master/Less-2/?id-2%20union%20select%201,group_concat(schema_name),3%20from%20information_schema.schemata查询数据库对应的表名 http://localhost/sqli-labs-master/Le…

JMeter之接口测试

在做接口测试之前,我们起码需要了解: 1、接口涉及的业务 2、接口的基本信息:访问地址、传值方式(Post 或 Get)、协议类型、域名或IP、端口、参数 3、接口参数是否加密或者有其他处理加工 很多时候,可能…

U8+ 提示子票区间开始输入不合法处理

手工做是否分包流转为是的商业汇票,提示如下: 处理方法: 第一步: 第二步 数据类型为数字,保存即可,填写值为1

STM32H7 串口 空闲中断 硬件FIFO 任意长接收 Hal库 IDLE

STM32H7 串口 空闲中断 硬件FIFO 任意长接收 Hal库 IDLE 由于工作原因好久不接触ST的芯片了,所以断更ST的东西了,不过偶尔玩玩也挺好的。 接着上篇继续说串口的事儿,这次是FIFO,STM32H7的串口都是带硬件FIFO,大小是发…

java重点学习-redis

一.redis 穿透无中生有key,布隆过滤nul隔离 锁与非期解难题。缓存击穿过期key, 雪崩大量过期key,过期时间要随机。 面试必考三兄弟,可用限流来保底。 1.1 Redis的使用场景 根据自己简历上的业务进行回答 缓存穿透、击穿、雪崩、双…

人工智能再次进化 善用AI提升营运效率

人工智能无疑为我们的生活带来不少便利,也为商界和社会发展作出了重大贡献。事实上,它的起源最早可以追溯到70年前,只可惜过往的 AI 技术尚未如现时般成熟,可以做到的事也远比现在少;直至近期的 AI 技术取得了重大突破…

Redis缓存预热方案详解:提升应用性能与用户体验

文章目录 引言1. 为什么需要缓存预热?2. 缓存预热的基本原理2.1 数据选择2.2 加载策略 3. Redis缓存预热方案设计3.1 方案概述3.2 数据选择3.3 加载策略3.4 实现方式 4. 测试与监控4.1 单元测试4.2 监控 5. 总结 引言 在现代Web应用中,缓存技术已经成为…

【并行计算】CUDA基础

cuda程序的后缀:.cu 编译:nvcc hello_world.cu 执行:./hello_world.cu 使用语言还是C。 1. 核函数 __global__ void add(int *a, int *b, int *c) {*c *a *b; }核函数只能访问GPU的内存。也就是显存。CPU的存储它是碰不到的。 并且核…

【技术解析】工厂内部导航系统:高精度定位与智能路径规划的技术实现

一、工厂内部导航系统概述 工厂内部导航系统集成了最新的GPS室内定位技术、蓝牙定位技术,实现了对工厂内部环境的无缝覆盖与高精度定位。无论是繁忙的生产线、错综复杂的仓库还是广阔的厂区,都能轻松应对。 二、工厂内部导航系统核心功能 实时定位&…

PromptReps: 解锁LLM的检索力量

论文:https://arxiv.org/pdf/2404.18424代码:https://github.com/ielab/PromptReps机构:CSIRO、昆士兰大学、滑铁卢大学领域:retrieval、embedding model发表:arXiv 当前大型语言模型用于zero-shot文档排序的方法主要有…