去除空值的专栏

  • 本文将采用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. 使用labelimg标注数据集

    labelimg安装 在cmd命令行中运行如下命令: pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple 数据准备 新建一 ...

  2. HMS Core 3D Engine助您实现逼真3D渲染效果,构筑大型3D数字世界

    HMS Core 3D Engine是一款高性能.高画质.高可靠的实时3D引擎,旨在帮助开发者制作高品质的3D应用.3D Engine将为您提供可编程渲染管线,多维粒子系统,3D角色与动画,超大地形地 ...

  3. JS从图片base64数据中获取图片的宽高

    // js从base64数据中获取宽高 var image = new Image(); image.src = "data:image/png;base64," + base64 ...

  4. 部署javaweb项目到阿里云ecs(centos7)

    阿里云文档 https://help.aliyun.com/document_detail/51376.html?spm=5176.12901015.0.i12901015.af8f525cCPi8Q ...

  5. openGauss每日一练(全文检索)

    openGauss 每日一练(全文检索) 本文出处:https://www.modb.pro/db/224179 学习目标 学习 openGauss 全文检索 openGauss 提供了两种数据类型用 ...

  6. 【资料包】HDC.Together 2023精选Codelabs指南现已上线(内有活动)

     今年HDC.Together 2023的Codelabs挑战系列活动如期而至,众多开发者齐聚一堂,积极参与.本次赛题中部分Codelabs已在官网上线详细操作指南,让我们与众多coders一起探索代 ...

  7. HDC2021技术分论坛:HarmonyOS低代码开发介绍

    作者:sunyuhui,wangxiaoyan,华为2012实验室软件IDE专家 什么是低代码开发?低代码开发主要特点有哪些?如何利用低代码开发原子化服务?本文带你一探究竟~ 一.什么是Harmony ...

  8. 当 mysql-connector-java-5 遇上 MySQL8,终究还是错付了 → 门当户对真的很重要!

    开心一刻 今天,老婆给我发消息 老婆:老公,儿子从隔壁邻居家回来了 老婆:是先打还是先洗? 我:先洗吧,万一打错人了呢 老婆:先洗脸吧,没错就边打边洗 起因 在我们的固有认知中, mysql-conn ...

  9. Oracle 与当前日期有关的内容

    Oracle 与当前日期有关的内容 求当前日期是周几: 大概就是下面这种方法 to_char(date,'D') Select to_char(date,'ss') from dual取当前时间秒部分 ...

  10. 力扣238(java)-除自身以外数组的乘积(中等)

    题目: 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 . 题目数据 保证 数组 nums之中任意元素的全 ...