去除空值的专栏

  • 本文将采用2-3种方式解决空值的问题,实验c语言基本类型,涵盖数组,指针,结构体三种情况

解决方案

一.通过数组的自身性质,让其值大于零

核心代码

 if (array[i]>0)
{
// 打印语句
}

1. short 数组测试

源码展示

#define MAXSIZE 20

int main()
{ short ss[MAXSIZE] = {1,2,3,4,5,6}; int i = 0; for (i = 0; i < MAXSIZE; i++)
{
if (ss[i]>0)
{
printf("ss[%d] = %d\n",i,ss[i]);
}
}
}
  • 打印结果

错误情况

正确结果

2. int 数组测试

源码展示

#define MAXSIZE 20

int main()
{ int arrary[MAXSIZE] = {1,2,3,4,5,6}; int i = 0; for (i = 0; i < MAXSIZE; i++)
{
if (arrary[i]>0)
{
printf("arrary[%d] = %d\n", i, arrary[i]);
}
}
}

3. long 数组测试

源码展示

 #define MAXSIZE 20

int main()
{ long arrary[MAXSIZE] = {1,2,3,4,5,6}; int i = 0; for (i = 0; i < MAXSIZE; i++)
{
if (arrary[i]>0)
{
printf("arrary[%d] = %d\n", i, arrary[i]);
}
} }

4. float 数组测试

源码展示

#define MAXSIZE 20

int main()
{ float arrary[MAXSIZE] = {1.0,2.0,3.0,4.0,5.0,6.0}; int i = 0; for (i = 0; i < MAXSIZE; i++)
{
if (arrary[i]>0)
{
printf("arrary[%d] = %f\n", i, arrary[i]);
}
} }

5. float 数组测试

源码展示

#define MAXSIZE 20

int main()
{ double arrary[MAXSIZE] = {1.0,2.0,3.0,4.0,5.0,6.0}; int i = 0; for (i = 0; i < MAXSIZE; i++)
{
if (arrary[i]>0)
{
printf("arrary[%d] = %f\n", i, arrary[i]);
}
}
}

6. char 数组测试

源码展示

#define MAXSIZE 20

int main()
{ char arrary[MAXSIZE] = {'a','b','c','d','e','f'}; int i = 0; for (i = 0; i < MAXSIZE; i++)
{
if (arrary[i]>0)
{
printf("arrary[%d] = %c\n", i, arrary[i]);
}
}
}

二.通过字符型数组的最后一位是'\0'过滤(中文的时候,其他类型比如数组,字母符号还是方法一)

核心代码

   if (arrary[j] == '\0')
{
break;
}

1.英文

源码展示

 #define MAXSIZE 20

int main()
{ char arrary[MAXSIZE] = {'a','b','c','d','e','f'}; int i = 0; for (i = 0; i < MAXSIZE; i++)
{
if (arrary[i] == '\0')
{
break;
} printf("arrary[%d] = %c\n", i, arrary[i]); } }

2.中文

源码展示

#define MAXSIZE 20

int main()
{ char arrary[MAXSIZE] = {"好好学习天天向上!"}; int i = 0; int j = 1; for (i = 0; i <= MAXSIZE; i+=2)
{
if (arrary[i] == '\0')
{
break;
} if (arrary[i] == '!')
{
printf("arrary[%d] = %c\n", j++, arrary[i]);
}
else {
printf("arrary[%d] = %c%c\n", j++, arrary[i], arrary[i + 1]);
} } }

三.指针的方式处理

核心代码

  if (*(p + i) == '\0') {
break;
}

实例

#define MAXSIZE 20

int main()
{ char arrary[MAXSIZE] = {"好好学习天天向上!"}; char *p; p = arrary; int i = 0; int j = 1; for (i = 0; i <= MAXSIZE; i+=2)
{
if (*(p+i) == '\0')
{
break;
} if (*(p + i) == '!')
{
printf("arrary[%d] = %c\n", j++, *(p + i));
}
else {
printf("arrary[%d] = %c%c\n", j++, *(p + i), *(p + i+1));
} } }

其他复杂情况

  • 参考

c语言怎么避免打印空数据?

四.while方式处理(最佳)

核心代码

while (*(p + i) != '\0')
{
printf("arrary[%d] = %c%c\n", j++, *(p + i), *(p + i + 1));
i += 2;
}

实例

#define MAXSIZE 20

int main()
{ char arrary[MAXSIZE] = {"好好学习天天向上!"}; char *p; p = arrary; int i = 0;
int j = 1; while (*(p + i) != '\0')
{
if (*(p + i) == '!')
{
printf("arrary[%d] = %c\n", j++, *(p + i));
}
else {
printf("arrary[%d] = %c%c\n", j++, *(p + i), *(p + i + 1));
} i += 2;
} }

其他复杂情况

  • 参考

C语言中如何输出汉字;如何用C语言汉字编码输出汉字(超全版)

c 语言不输出空数据 (全面覆盖)的更多相关文章

  1. c语言怎么避免打印空数据?

    目录 前景提要 解决方案 实战演练 1.数组搭建 2.在循环处,处理这个问题 3.在循环中,添加过滤条件. 4.扩展了其他类型的数组,都是可以通过这种方式进行过滤,最后,得到打印的时候,没有空值. 总 ...

  2. C语言中如何输出汉字;如何用C语言汉字编码输出汉字(超全版)

    目录 前景提要 方式一: 方式二: 1. 数组方式打印 2. 指针方式打印 3. 优化为while方式 方式三: 1. 使用结构体内数组方式 2. 使用结构体内数组指针方式 (1) 基础写法 (2) ...

  3. iOS—网络实用技术OC篇&网络爬虫-使用java语言抓取网络数据

    网络爬虫-使用java语言抓取网络数据 前提:熟悉java语法(能看懂就行) 准备阶段:从网页中获取html代码 实战阶段:将对应的html代码使用java语言解析出来,最后保存到plist文件 上一 ...

  4. iOS开发——网络实用技术OC篇&网络爬虫-使用java语言抓取网络数据

    网络爬虫-使用java语言抓取网络数据 前提:熟悉java语法(能看懂就行) 准备阶段:从网页中获取html代码 实战阶段:将对应的html代码使用java语言解析出来,最后保存到plist文件 上一 ...

  5. response小结(一)——用response向客户端输出中文数据(乱码问题分析)

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象,和代表响应的response对象.request和response对象既然代表请求和响应,那我们要 ...

  6. response 输出中文数据 文件下载

    使用OutputStream或者PrintWriter向客户端浏览器输出中文数据 package com.xc.response; import java.io.IOException; import ...

  7. R语言系列:生成数据

    R语言系列:生成数据 (2014-05-04 17:41:57) 转载▼ 标签: r语言 教育 分类: 生物信息 生成规则数据1.使用“:“,如x=1:10,注意该方法既可以递增也可以递减,如y=10 ...

  8. [shell脚本]在Linux终端可视化输出表格数据

    最终效果 1. 自定义表格样式 2. 自定义主题颜色 支持三系普通颜色 支持16色彩虹色 支持单颜色 回顾一下shell语法 1. shell传递参数 我们可以在执行shell脚本时实时传递参数从而指 ...

  9. C语言动态输出等腰三角形

    C语言动态输出等腰三角形 题目要求:输入行数 打印出对应行数的等腰三角形,要求使用for循环嵌套. 思路 while语句写外层死循环 用于判断输出的数据: 分析: 最外层for,来控制最外层行数,存储 ...

  10. Java基础-继承-编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。

    #29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类T ...

随机推荐

  1. #线性基#CF1100F Ivan and Burgers

    题目传送门 分析 线段树上直接维护线性基是三个log的.(一定要合并) 考虑一种分治做法,在 \([l,mid]\) 和 \((mid,r]\) 的询问分治处理, 跨过 \([mid,mid+1]\) ...

  2. #网络流,分层图#洛谷 4400 [JSOI2008] Blue Mary的旅行

    题目 分析 考虑答案一定最大不超过\(n\),那么可以建分层图, 若当前最大流等于\(n\),直接输出枚举的天数 \((x,x')\)容量为\(inf\),\((x,y')\)容量为一个航班最多的票数 ...

  3. 【我与openGauss的故事】如何管理数据库安全(第一部分)

    前言 2021 年 6 月 10 日国家颁布数据安全法对我们国家来说具有重大意义 信息安全法 梳理几点重要意义: (一) 对数据的有效监管实现了有法可依,填补了数据安全保护立法的空白,完善了网络空间安 ...

  4. HarmonyOS 自定义页面请求与前端页面调试

      一.自定义页面请求响应 Web组件支持在应用拦截到页面请求后自定义响应请求能力.开发者通过onInterceptRequest()接口来实现自定义资源请求响应 .自定义请求能力可以用于开发者自定义 ...

  5. 解密prompt系列27. LLM对齐经验之如何降低通用能力损失

    前面我们已经聊过众多指令微调的方案,这一章我们重点讨论下如何注入某一类任务或能力的同时,尽可能不损失模型原有的通用指令理解能力.因为在下游或垂直领域应用中,我们设计的推理任务风格或形式,往往很难通过p ...

  6. Spring Cloud Bus:消息总线

    Spring Cloud Bus:消息总线 SpringCloud学习教程 SpringCloud Spring Cloud Bus 使用轻量级的消息代理来连接微服务架构中的各个服务,可以将其用于广播 ...

  7. 重新整理 .net core 实践篇———承载[外篇]

    前言 简单介绍一下承载. 正文 名称叫做承载,其实就是.net core 定义的一套长期运行的服务的规范. 这个服务可以是web服务,也可以是其他服务,比如tcp,或者一些监控服务. 这里以监控服务为 ...

  8. docker 应用篇————docker 的文件系统[十]

    前言 简单介绍一下docker的文件系统. 正文 docker 容器启动就是一个文件系统的启动. 在docker中,每一层镜像都具备一些文件. 比如说,有一个centos的镜像. 里面就是一个微小版的 ...

  9. 他来了他来了,.net开源智能家居之苹果HomeKit的c#原生sdk【Homekit.Net】1.0.0发布,快来打造你的私人智能家居吧

    背景介绍 hi 大家好,我是三合,作为一个非著名懒人,每天上完班回到家,瘫在沙发上一动都不想动,去开个灯我都嫌累,此时,智能家居拯救了我,只需要在手机点点点,开关灯,空调,窗帘就都搞定了,一开始我用的 ...

  10. kubernetes集群最新版安装

    原文地址:https://haiyux.cc/2022/09/21/k8s-install/ 虚拟机准备 我这里准备了三台虚拟机,分别部署一个master和两个node,操作系统位ubuntu 20. ...