当前位置:首页 » 编程语言 » c语言字符串二维数组

c语言字符串二维数组

发布时间: 2022-07-16 21:16:53

c语言怎么用二维数组输入行数不确定的字符串

首先】是多行字符串的输入和保存。可以:
开设一个字符串数组如下,其中N定义最多可记录多少行,M定义每行可保存多少个字符,改变#define定义可以调整这两个数据
#define
N
1024
//最多1024行
#define
M
256
//每行最多存储255个字符
char
input[N][M];
实际输入一行可以用gets函数实现,判断gets函数的返回值可知道是否结束输入(比如输入Ctrl+Z的组合键结束),每输入一行,记录的行数加1,最后可得到实际输入的行数和按行号顺序保存在input数组中的所有字符串。
【然后】是倒序输出字符串,每个字符串倒序输出。可以:
按照倒序给出input的第1维下标,每行输出一个字符串,在输出每个字符串时,找到字符串末尾(都是以字符'\'结束的),然后输出一个字符再往回倒退一个字符,直至输出完整个字符串。如:
for
(
i=n-1;i>=0;i--
)
{
nn=0;
while
(
input[i][nn]
)
nn++;
for
(
j=nn-1;j>=0;j--
)
printf("%c",input[i][j]);
printf("\n");
}

② c语言中如何定义字符串,是用二维数组实现的吗

一维和二维的都可以;
一维的情况如下:
1,char string0[10];
2,char string1[]="prison break";
3,char string2[100]="michael scofield";
1句表示定义个长度为10的字符串,但未赋值,2句表示定义了一个字符数组string1,并进行初始化,使得其长度自动为13(字符串”prison break"中的字符个数加上结尾的'\0'),3句定义了一个有100个元素的字符数组string2,并初始化了17个元素("michael scofield";加上结尾的'\0');
二维的情况如下:
1,char string3[6][30];
2,char string3[6][30]={"joy","phosee","monses","chandele","ross","rather"};
此句表示有6个字符串,每个字符串的长度为30,每个字符串的初始值与“joy","phosee","monses","chandele","ross","rather"相对应;

③ C语言把一些字符串存入一个二维数组(在线等)

猜测:你的目的是读文件中的多行出来,然后分行存储二维数组,最后按每行再输出出来;

解决方法:
如果是读多行,正常情况下应该是每行每行往外读,而不是一下子全读出来。
用一个for循环,每次调fgets函数,只读一行。
读一行存一行。
然后再for循环往外cout。

fgets每次读一行,
fscanf则要自己定规则,你很难判断行的结束符/n/a

建议:
//1. 如是c的话不要引用#include<iostream>,如果c++的话不要引用#include<stdio.h>
//2. 因为是强制读100个,并且只能读100个。如果文件中总数小于100,则可以正常打印出来;如果大于100,则只能输出100个;猜测你的文件中第一行应该是多于100个字符的;
//3. 学会单步跟踪加细心
//4. 多用VC6自带的帮助文档(安装完CSDN后按F1可弹出)

④ c语言二维字符数组

二维字符数组一般用于存储和处理多个字符串,二维字符数组中的每一行均可存储表示一个字符串。

二维字符数组的定义
二维字符数组的定义格式为:
char 数组名[第一维大小][第二维大小];
如:
char c[3][10]; //定义了一个3行10列的二维字符数组c

⑤ 跪求C语言中怎样把很多字符串存入二维数组中,并用指针输出,急用~谢谢

给你举个例子,这里str就是一个二维数组,我手动输入10个字符串存入该数组,然后用该二维数组的行指针输出
#include<stdio.h>
#include<string.h>
void main()
{
char str[10][20];
int i;
for(i=0;i<10;i++)
gets(*(str+i));
for(i=0;i<10;i++)
puts(*(str+i));
}

⑥ C语言字符串二维数组引用可以省略列下标吗

代码语法上是没有问题的。
(1)c语言的二维数组的每一行都可以看成一个一维数组,如书上的name就可以看成5个一维数组组成的。如果数组恰好定义成char类型,那这些一维数组又可以看成字符串。
(2)代码一开始就是用strcpy函数对这5个字符串赋值。每行的大小只有10个字节,因此它还要检测输入是否越界。老师应该说过,c字符串的结尾要有个结束符0,所以这里的检测直觉上是有问题的,>10改成>=10更好一些。
(3)访问这些一维数组最直接的方法就是书上的做法。name[i]的意思就是第i行的起始地址。在vs编译器上还允许
char *p = name[i];
char (*p)[10] = &name[i];
char (*p)[10] = (char (*)[10])name[i];
可能有些编译器不完全支持

⑦ c语言中,怎么输入多组字符串,放在二维数组里

1、字符输出,当要向输出设备(显示屏、打印机等)输出字符时,可以用 c 格式描述符控制。如下所示代码即输出字符ch (a) 。

⑧ C语言如何定义指针指向字符型二维数组

使用指针变量访问二维数组的任意一个元素的方法:

1.使用列指针:定义一个列指针p,让它指向二维数组的第0个元素

int a[3][4];

int *p;

p=&a[0][0];

//因为a[0]是第0行的数组名,所以p=&a[0][0]相当于p=a[0],因为a[i][j]前面共有i*4+j个元素

该二维数组的任意i行j列元素可表示为*(p+i*4+j)。

2.使用行指针:定义一个行指针p,让它指向二维数组的第0行

int a[3][4];

int (*p)[4];

p=a; //也可以为p=&a[0];

其中* ( *(p+i)+j)表示任意一个i行j列的元素。

(8)c语言字符串二维数组扩展阅读:

数组的使用规则:

1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。

2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。

3.如不给可初始化的数组赋初值,则全部元素均为0值。

4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5};可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。

网络-数组

热点内容
bs源码 发布:2025-02-01 16:51:52 浏览:567
百度云zip怎么解压 发布:2025-02-01 16:31:59 浏览:566
pmc密码是什么意思 发布:2025-02-01 16:28:49 浏览:783
苹果手表和安卓手表哪个好用 发布:2025-02-01 16:28:07 浏览:583
上海电信上传 发布:2025-02-01 16:22:10 浏览:982
有什么好的双u主板配置 发布:2025-02-01 16:18:17 浏览:177
编程漩涡 发布:2025-02-01 16:01:51 浏览:328
司机会所访问 发布:2025-02-01 15:54:11 浏览:780
家用电脑改成服务器并让外网访问 发布:2025-02-01 15:30:23 浏览:355
javac工资 发布:2025-02-01 15:24:28 浏览:23