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

创始人
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语言字符串转整数:两种实现方法详解 怎么把字符串转换成整数?将字符串转换为整数有两种方法:1.使用C语言自带的库函数...

2
C语言中cout输出空格的符号使用指南 C语言输出空格用什么符号可以使用cout

3
c语言有三维数组吗 C语言三维数组初始化详细方法和步骤如下:1第一步,需要定义一个数组。常见的数组类...

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

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

6
Python中None值的判断与处理技巧 python中的NonePython编程通常是检查是否可以改变。以下是处理这种情...

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

8
Python字符串字符计数:高效算法与实... python怎么判断字符串中出现次数最多的字母在Python中,可以使用滑动窗口...

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

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