前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >C语言经典100例002-将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中

C语言经典100例002-将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中

原创
作者头像
Python编程爱好者
修改于 2020-11-06 06:27:46
修改于 2020-11-06 06:27:46
6.2K0
举报

系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。

喜欢的同学记得点赞、转发、收藏哦~

后续C语言经典100例将会以pdf和代码的形式发放到公众号

欢迎关注:计算广告生态 即时查收

1 题目

编写函数fun() 函数功能:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中

例如: 二维数组中的数据为: W W W W S S S S H H H H 则字符串中的内容是:WSHWSHWSH

image.png
image.png

2 思路

第一层循环按照列数进行,第二层循环按照行数

然后依次提出每一列的字符

3 代码

为了熟悉二维数组的指针表示,部分代码给出了数组表示和指针表示

代码语言:txt
AI代码解释
复制
#include<stdio.h> 
#include<string.h>
#define M 3 
#define N 4 
/**
编写函数fun()
函数功能:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中

例如:
二维数组中的数据为:
W W W W
S S S S
H H H H
则字符串中的内容是:WSHWSHWSH
**/

//   0 1 2 3
// 0 W W W W
// 1 S S S S
// 2 H H H H


char *fun(char s[M][N], char *res) {
	int t = 0;
	for (int i = 0; i < N; ++i) {
		for (int j = 0; j < M; ++j) {
			res[t++] = s[j][i];
      // res[t++] = *(*(a*i)+i);   // 指针表示
		}
	}
	res[t] = '\0';
	return res;
}


int main(int argc, char const *argv[]) {
	char a[M][N] = {'M', 'M', 'M', 'M', 'S', 'S', 'S', 'S', 'H', 'H', 'H', 'H'};
	int size_res = M*N;
	char res[size_res];
	printf("二维数组中元素:\n");
	for (int i = 0; i < M; ++i) {
		for (int j = 0; j < N; ++j) {
			printf("%c\t", a[i][j]);
      // printf("%c\t", *(*(a*i)+j));   // 指针表示
		}
		printf("\n");
	}
	
	printf("按列的顺序依次:\n%s\n", fun(a, res));
}

示例结果:

代码语言:txt
AI代码解释
复制
$ gcc ex002.c -o demo
$ ./demo
二维数组中元素:
M	M	M	M
S	S	S	S
H	H	H	H
按列的顺序依次:
MSHMSHMSHMSH

-- END --

喜欢本文的同学记得点赞、转发、收藏~

更多内容,欢迎大家关注我们的公众号:计算广告生态

后续C语言经典100例将会以pdf和代码的形式发放到公众号

同时也带来更多系列文章以及干货!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C语言从青铜到王者——数组详解【一维数组、二维数组、字符数组】
所谓数组,是指将那些具有相同类型的、数量有限的若干个变量通过有序的方法组织起来的一种便于使用的形式。数组属于一种构造类型,其中的变量被称为数组的元素。数组元素的类型可以是基本数据类型,也可以是特殊类型和构造类型。
C语言中文社区
2021/05/13
1.5K0
C语言经典100例001-将一个数字字符串转换为一个整数
例如:字符 '0'-'9' 对应的十进制整数是48~57,那么,将对应的整数减去48就得到了对应的整数
Python编程爱好者
2020/11/06
7.6K0
C语言经典100例001-将一个数字字符串转换为一个整数
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
(2)在定义指针变量时,指针变量名前的*表示现定义的是一个指针类型的变量。星号并不是指针变量名的一部分,只是一个标志
小徐在进步
2024/10/04
1950
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
数组及字符串相关知识
memcpy 函数用于 把资源内存(src所指向的内存区域) 拷贝到目标内存(dest所指向的内存区域);一个size变量控制拷贝的字节数; 使用方式memcpy(b,a,sizeof(int)*k) 从a中赋值k个元素到b数组。
风骨散人Chiam
2020/10/28
7240
C语言经典100例004-统计各个年龄阶段的人数
rand()函数是按指定的顺序来产生整数,因此每次执行上面的语句都打印相同的两个值,所以说C语言的随机并不是真正意义上的随机,有时候也叫伪随机数,使用 rand() 生成随机数之前需要用随机发生器的初始化函数 srand(unsigned seed)(也位于 stdlib.h 中) 进行伪随机数序列初始化,seed 又叫随机种子,通俗讲就是,如果每次提供的 seed 是一样的话,最后每一轮生成的几个随机值也都是一样的,因此叫伪随机数,所以需要每次提供不同的 seed 达到完全的随机,我们通常用时间函数 time(NULL) 作为 seed ,因为时间值每秒都不同,但是在此题中使用不到time这个工具
Python编程爱好者
2020/11/06
8840
C语言经典100例004-统计各个年龄阶段的人数
【C语言】一维数组和二维数组
type_t arr_name [const_n] type_t-----数组元素类型 arr_name-----数组名 [const_n]----- 是一个常量表达式,用来指定数组大小
YoungMLet
2024/03/01
1730
C语言必背15个经典程序
1、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
超级小可爱
2024/08/07
810
【c语言日寄】二维数组的深度解构
在C语言中,数组是一种非常基础且重要的数据结构。然而,许多初学者对二维数组的本质理解不够深入,导致在使用时出现各种问题。本文将通过一个简单的程序引入,深入分析二维数组的本质,并探讨其注意事项,帮助读者更好地理解和掌握二维数组。
siy2333
2025/03/04
750
c语言基础学习05_数组和字符串
============================================================================= 涉及到的知识点有:for循环有两种写法、数组、一维数组定义与使用、一维数组的初始化、 如何得到一个一维数组的成员数量、查找出一维数组中成员最大值、查找一维数组的第二大元素的值、 一维数组的逆置、一维数组排序:冒泡排序、二维数组、二维数组的初始化、三维数组初始化、三维数组排序、 字符串与字符数组、字符数组的初始化、字符数组的使用(以及字符数组和字符串的区别)、去除输出字符串结尾处的空格、 现在要去掉字符串最右面的空格,而不能去掉字符串中间的空格呢、随机数产生函数rand与srand、 自动的变种子、控制随机数的范围、用scanf来输入字符串、如何把两次输入的字符串放到新的字符串里去、 scanf缓冲区溢出的危险的解释、字符串的逆置。 ============================================================================= for循环有两种写法:
黑泽君
2018/10/11
2.4K0
C语言(二维数组)
前面学习了一维数组,数组的元素都是内置类型的,如果我们把一维数组作为数组的元素,这时候就是二维数组,二维数组作为数组元素的数组就是三维数组,二维数组以上的数组统称为多维数组。
_小羊_
2024/10/16
1230
C语言(二维数组)
c语言二维数组
初始化和打印方式: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> void test() { //赋值打印方式 //1. int arr[2][3]; arr[0][0] = 1; arr[0][1] = 2; arr[0][2] = 3; arr[1][0] = 4; arr[1][1] = 5; arr[1][2] = 6; //2. int arr1[2][3] = { {1,2,3}, {4,5,6},//最后一行末
大忽悠爱学习
2021/03/02
1.1K0
c语言二维数组
C语言经典100例003-统计一行字符串单词的个数,作为函数值返回
系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。 喜欢的同学记得点赞、转发、收藏哦~ 后续C语言经典100例将会以pdf和代码的形式发放到公众号 欢迎关注:计算广告生态 即时查收 1 题目 编写函数fun() 函数功能:统计一行字符串单词的个数,作为函数值返回一行字符串在主函数中输入,规定所有单词都是由小写字母组成,单词之间由若干空格隔开,一行的开始没有空格 [image.png] 2 思路 逐个字符进行判断是否为空 下面“空开处”指的是一个空格或者若干空格隔开单词的说法 开头无空格,故需要
Python编程爱好者
2020/11/06
2.2K0
C语言经典100例003-统计一行字符串单词的个数,作为函数值返回
C语言经典100例005-删除一维数组中所有相同的数
系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。 喜欢的同学记得点赞、转发、收藏哦~ 后续C语言经典100例将会以pdf和代码的形式发放到公众号 欢迎关注:计算广告生态 即时查收 1 题目 函数:fun() 功能:删除一维数组中所有相同的数,使之只剩一个。 描述:数组中的数据已经按照从小到大排列,函数返回删除后数组中元素的个数 举例: 一维数组中的数据是:2,2,2,2,3,3,4,4,5,6,6,6,7,7,8,9,9,9,10,10 删除后数组中的内容是:2,3,4,5,6,7,
Python编程爱好者
2020/11/06
1.8K0
C语言经典100例005-删除一维数组中所有相同的数
【C语言】二维数组
练习1:一个学习小组有 5 个人,每个人有三门课的考试成绩。求全组分科的平均成绩和 各科总平均成绩。
謓泽
2022/12/12
1.8K0
【C语言】二维数组
C语言从青铜到王者——数组详解【一维数组、二维数组、字符数组】
所谓数组,是指将那些具有相同类型的、数量有限的若干个变量通过有序的方法组织起来的一种便于使用的形式。数组属于一种构造类型,其中的变量被称为数组的元素。数组元素的类型可以是基本数据类型,也可以是特殊类型和构造类型。
C语言中文社区
2022/05/31
9810
C语言从青铜到王者——数组详解【一维数组、二维数组、字符数组】
C语言二维数组-学习十三
本文最后更新于2022年02月05日,已超过22天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
XG.孤梦
2022/02/28
9510
C语言二维数组-学习十三
c语言进阶指南(1)(数组)
从这里开始,我们会经常分析代码在内存中的分布形式,正所谓新手看代码,高手看内存。这也是我将这个专栏划分为进阶篇的原因,从这里开始,我们将会经常在内存层面分析代码的作用。
代码小豪
2024/06/05
2110
C语言入门系列之8.指针的概念与应用
指针是C语言中的一个重要的概念,也是C语言的一个重要特色。 正确而灵活地运用它,可以有效地表示复杂的数据结构;能动态分配内存;能方便地使用字符串;有效而方便地使用数组等。 掌握指针的应用,可以使程序简洁、紧凑、高效。可以说,不掌握指针就是没有掌握C的精华。
cutercorley
2020/07/23
1.4K0
C语言入门系列之8.指针的概念与应用
【C语言】指针进阶:字符指针&&数组指针&&函数指针
✨作者:@平凡的人1 ✨专栏:《C语言从0到1》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改变 ---- 🌹感谢您的点赞与关注,同时欢迎各位有空来访我的🍁平凡舍 ---- 文章目录 @[toc] 🚀前言 🚀字符指针 🚀指针数组 🚀数组指针 🍁&数组名 与 数组名 🍁数组指针的使用 🚀数组传参、指针参数 🍁一维数组传参 🍁二维数组传参 🍁一级指针传参 🍁二级指针传参 🚀函数指针 🚀结语 🚀前言 回想之前,我们学了指针的一些基础👉 指针与结构体 我们知道了指针的概念
平凡的人1
2022/11/15
3K0
【C语言】指针进阶:字符指针&&数组指针&&函数指针
【C 语言】二级指针作为输入 ( 二维数组 | 抽象业务函数 | 二维数组打印函数 | 二维数组排序函数 )
此处遍历时 , 注意指针的步长 ,传入一个二级指针 char ** , 会出错 , 如果传入 二级指针 , array[i] 等同于 *(array + i) , array 的步长是 10 ;
韩曙亮
2023/03/29
1K0
【C 语言】二级指针作为输入 ( 二维数组 | 抽象业务函数 | 二维数组打印函数 | 二维数组排序函数 )
推荐阅读
相关推荐
C语言从青铜到王者——数组详解【一维数组、二维数组、字符数组】
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文