去除空值的专栏

  • 本文将采用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. 深入了解 Spring Boot 核心特性、注解和 Bean 作用域

    Spring Boot 是什么? Spring Boot 是基于 Spring Framework 构建应用程序的框架,Spring Framework 是一个广泛使用的用于构建基于 Java 的企业 ...

  2. Linux系统 g++ 链接 libopencv_world.a 静态库编译程序

    编译opencv,我是直接编译成 libopencv_world.a  一个文件 正常链接编译,容易报错:main: hidden symbol `opj_read_header' isn't def ...

  3. Python设置电脑桌面壁纸

    其实 Python 设置电脑桌面壁纸是很简单的,主要是调用 win32gui  这个库来实现的 代码如下: import win32api import win32con import win32gu ...

  4. html-testRunner中文乱码

    如下图,使用 html-testRunner 这个库生成测试报告后,出现乱码 因为  HTML文件已经写了  文件编码是  utf-8 所以 我怀疑可能是 html-testRunner 这个库文件中 ...

  5. 给你安利一款鲁班大叔开发的maven依赖搜索神器

    写在前面 一款好的插件往往能提高我们的开发效率.今天就给大家安利一款maven 依赖搜索插件. 插件是自己一直关注的鲁班大叔开发的,用了几天真的好用 废话不多说,我们就来看看这是一款什么插件 一.ma ...

  6. 【鸿蒙生态千帆起】HarmonyOS系统级地图与位置服务,赋能广大开发者

     在"与HarmonyOS同行,开放生态,共赢未来"为主题的HUAWEI Developer Day(简称HDD)沙龙中,Petal Maps为开发者们带来了在HarmonyOS下 ...

  7. 安全工具分析系列-Londly01

    前言 原创作者:Super403,文章分析主要用于研究教学 本期研究:[Londly01-safety-tool]工具源码 简介:自动化资产探测及漏扫脚本 工具来源:https://github.co ...

  8. signalr 应用于微信小程序(二)

    前言 本节基于一,为2017年写的脚本库. 正文 我们连接的是websocket那么我们需要看的是ws: 这里看到需要的参数其实只要connecttoken我们是没有的,那么如果得到的呢? 是网络请求 ...

  9. C++ 递归与面向对象编程基础

    C++ 递归 递归是一种使函数调用自身的技术.这种技术提供了一种将复杂问题分解为简单问题的方法,从而更容易解决问题. 递归可能有点难以理解.理解其工作原理的最佳方法是通过实验来尝试. 递归示例 将两个 ...

  10. 说说对 Node 中的 Buffer 的理解?应用场景?

    一.是什么 在Node应用中,需要处理网络协议.操作数据库.处理图片.接收上传文件等,在网络流和文件的操作中,要处理大量二进制数据,而Buffer就是在内存中开辟一片区域(初次初始化为8KB),用来存 ...