去除空值的专栏

  • 本文将采用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. #提交答案题#LOJ 6467 'Zip' Quine

    题目 一种比较巧妙的方式 print 1 print 1 print 1 print 1 print 1 print 1 repeat 3 2 print 2 repeat 3 2 print 2 r ...

  2. #dp,模型转换,排列组合#AT1983 [AGC001E] BBQ Hard

    题目 有两个长度为\(n\)的序列\(a,b\),需要求 \[\sum_{i=1}^n\sum_{j=i+1}^nC(a_i+b_i+a_j+b_j,a_i+a_j) \] 其中\(n\leq 200 ...

  3. SQLAlchemy详解

    一.SQLAlchemy介绍 SQLAlchemy 是 Python SQL 工具包和对象关系映射器,为应用程序开发人员提供 SQL 的全部功能和灵活性. SQLAlchemy支持SQLite.Pos ...

  4. 【FAQ】HarmonyOS SDK 闭源开放能力 —Asset Store Kitx

    1.问题描述 使用关键资产API需要配置SystemCapability.Security.Asset,但不知道syscap.json文件应该配置在哪里,文档也没找到. 解决方案 新增关键资产等API ...

  5. 重新整理数据结构与算法(c#)——KMP破解[二十七]

    前言 很多人把KMP和暴力破解分开,其实KMP就是暴力破解,整个高大上的名字,难道还不是去试错匹配吗? KMP是这样子的,比如说: 绿色部分是我要匹配的. 按照一般写法是这样子的: ABABA 去匹配 ...

  6. 浅谈TypeScript对业务可维护性的影响

    前言 笔者认为, TypeScript是服务于业务的, 核心就是提高代码的可维护性. TypeScript是把双刃剑, 如果类型系统使用的不好, 反而会阻碍开发, 甚至最后就变成了anyScript. ...

  7. React中的key的作用

    一.是什么 首先,给出react组件中进行列表渲染的一个示例: const data = [ { id: 0, name: 'abc' }, { id: 1, name: 'def' }, { id: ...

  8. kratos http原理

    概念 kratos 为了使http协议的逻辑代码和grpc的逻辑代码使用同一份,选择了基于protobuf的IDL文件使用proto插件生成辅助代码的方式. protoc http插件的地址为:htt ...

  9. 力扣1077(MySQL)-项目员工Ⅲ(中等)

    题目: 写 一个 SQL 查询语句,报告在每一个项目中经验最丰富的雇员是谁.如果出现经验年数相同的情况,请报告所有具有最大经验年数的员工. 查询结果格式在以下示例中: employee_id 为 1 ...

  10. GaussDB SQL查询语句执行过程解析

    本文分享自华为云社区<[GaussTech第2期]GaussDB SQL查询语句执行过程解析>,作者: GaussDB 数据库. SQL于关系型数据库而言,重要性不言而喻.就像一个乐团的指 ...