二维字符数组操作:深入理解输入与输出技巧

创始人
2024-12-31 02:52:12
0 次浏览
0 评论

二维字符数组如何输入和输出

这样:

#include

intmain()

{

chara[3][20];

char*p;

inti;

p=a[0];//a[0]为列指针,p指向到第0行第0列的元素,p=a[0]+j指向第0行第j列中的元素。

for(i=0;i<3>

//for(i=0;i<3>

for(i=0;i<3>

;//第二个字符串的开头Die地址应该是a[0][0]移动20个字符后。
p是指向字符的指针

数组名代表列指针*(a+i),对应列指针a[i]

#include

intmain()

{

chara[3][20];

inti;

for(i=0;i<3>

//for(i=0;i<3>

对于(i=0;i<3>高级信息:

注意事项

对于输入二维数组,一般情况下,当然可以一次输入一行,但最好一次输入一行。

所以逐行输入:

for(inti=0;i

scanf("%s",perNum[i]);

对于输入,%c用于单次输入,%s用于一行输入。

在一种情况下,每个输入行需要存储18个数字,因此我们的想法是建立一个18列的二维数组。

charperNum[100][18];

那么此时输入输出的代码为:

charperNum[100][18];

intN;

scanf("%d",&N);

for(inti=0;i

\tscanf("%s",perNum[i]);

for(inti=0;i

\tprintf("%s\n",perNum[i]);

其中,第一行的2给出的是该二维数组中的行数。

这时候发现输入没有问题,但是逻辑上输出应该是2行18列。
但是,我注意到第一行的输出也输出第二行的输入。

问题是output是根据换行符\0来判断是否输出行的。
但是,由于指定的列数只有18,只保存输入,因此没有空间存储换行符(\0)。

所以这里的改进就是在二维数组中至少多增加一列来存储换行符。

所以代码改为:

charperNum[100][19];//18以上的一位数字存放换行符

intN;

scanf("%d",&N);

for(inti=0;i

\tscanf("%s",perNum[i]);

for(inti=0;i

\tprintf("%s\n",perNum[i]);

c++二维数组输入输出问题

cin>a[i][100];每个字符串都有一个字符,而这个for循环只能转换输入字符串的顺序,先输入后输出。
热门文章
1
c语言有三维数组吗 C语言三维数组初始化详细方法和步骤如下:1第一步,需要定义一个数组。常见的数组类...

2
js字符串包含某个字符串的个数 js问题:求字符串中某个字符出现的个数的方法?看看是否满足你的需求(x);}pu...

3
轻松调整SQL Server 2008表... sql2008表格怎么只能编辑前两200行200线是默认设置,并且仅在号码开通时...

4
C语言基础解析:从Hello World... C语言的基本要素有哪些?基本的C语言格式可以参考基本的helloworld程序。...

5
Python排列组合与循环运用技巧解析 怎样使用Python进行排列组合?对于这类问题,我们可以使用分割循环来执行转换和...

6
C语言for循环技巧:非C字符位置记录与... C语言for循环问题求解.在for中,我记录了要写入的非c字符的位置。仅当字符不...

7
Hive内置函数全解析:数学、字符串、日... 2021年大数据Hive(五):Hive的内置函数(数学、字符串、日期、条件、转...

8
Python随机数生成技巧:轻松输出任意... python通过键盘输入随机数种子,产生50个[0,100]之间的随机正整数,然...

9
C语言实现字符串倒序输出教程 请教C语言字符串倒序输出#include#includevoidmain(){c...

10
C语言一元二次方程解答器实现与优化 这个c语言程序哪里有问题,我想写一个一元二次方程解答器。#include#inc...