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语言字符型二维数组用scanf和gets如何输入,举个例谢谢

#include <stdio.h>
int main()
{
char s[3][20];
int i;
printf("输入第一行:");
gets(s[0]);
printf("输入第二行:");
scanf("%s",s[1]);

for(i=0;i<2;i++)
{
printf("%s\n",s[i]);
}
return 0;
}

⑶ 跪求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语言二维数组如何定义字符串急。。。

二维字符数组的定义格式为:char 数组名[第一维大小][第二维大小];

例如:char c[3][10]; //定义了一个3行10列的二维字符数组c

由于该二维数组的每一行 c[0]、c[1]、c[2] 均是含有 10 个元素的一维字符数组,即二维数组的每一行均可表示一个字符串。

通常情况下,二维数组的每一行分别使用一个字符串进行初始化。 例如:

例如:char c[3][8]={{"apple"},{"orange"},{"banana"}};

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

分析

字符串 "Apple" 的长度为 5,加上结束符 "" 共 6 个字符,前 5 个字符分别从 c[0] 行的首元素 c[0][0] 开始存放,到 c[0][4],第 6 个字符 '' 只能保存到 c[1] 行的首元素 c[1][0]。

字符串 "Orange" 的长度为 6,该字符串的前 5 个字符分别从 c[1] 行的首元素 c[1][0] 开始存放,到 c[1][4],第 6 个字符及结束符 '' 顺序存到 c[2][0] 和 c[2][1]。

字符串 "Pear" 的长度为 4,该字符串的 5 个字符(包含 '')分别从 c[2] 行的首元素 c[2][0] 开始存放,到 c[2][4]。

⑸ C语言 怎么从二维数组中读取想要的字符串

fp=fopen("2.txt","rt"); -- 是不是 rb ? .mp3 文件是2进制文件。
fgets(str[n],100,fp)==NULL) -- 文本文件有行的概念,可以用 fgets 读一行,2进制文件没有行的概念。应当用 fread 读若干字节。

“比如 我们的家 我们的国”-- 中文字 通常是 二进制 双字节 编码。
从第九个字节打印 -- 字符串要有结尾符 '\0'
打印 str[j][8] 就是 第j 个字符串 的第9个字节开始 到 结尾符。
是乱码 -- 同编码的解码有关,对应的字体库有关,同你的显示器设置有关,同显示器是否支持中文有关。最好先用 英文 ASCII 做试验,程序通过再研究中文。中文很复杂,看到乱码未必是错。

⑹ C语言二维字符串数组定义

试着你改成 char [][],char *ip[4]
这表示一个数组有四个元素,而每个元素是一个字符串
应该更能清楚地表达你要表达的效果

⑺ C语言字符二维数组怎么赋值合法

这是因为"字符"中含有4个字节,外加一个串结束符,需要长度为5的字符数组才可以存储。内
改为char str[2][5]={"字符","字符"};这样容就不会报错了。
而char *str[2][3]={"字符","字符"};加个*号,只是存储在常量区的字符指针,就不会报错。
共有6个字符指针的存储空间,只使用了其中的2个元素来存储2个地址,当然就不会报错了。

⑻ c语言 二维数组的字符类型

一维的我们用来表示一个单独的字符串,如char ch1[10] = "Name";
二维的通常是表示多个字符串,即字符串数组如char ch2[2][10] = {"Name","Number"};
其中每个字符串的结尾都是\0(也就是0值) 换言之,第一个[]是几,就可以装几个最大长度为第二个[]-1的字符串。
比如char a[2][3];定义这样一个变量,就可以理解成定义一个字符串数组,其中有2个字符串,每个字符串的最大长度为3-1(因为\0要占用一个)

⑼ c语言二维数组字符串

int main()
{
char a[20],temp;
char *p,*q;
int len;

clrscr();
scanf("%s",a);
printf("Before reverse: %s\n",a);

len=strlen(a);
p=a;
q=a+len-1;
while(p<q)
{
temp=*p;
*p=*q;
*q=temp;
++p;
--q;
}

printf("After reverse: %s",a);

}

⑽ C语言字符二维数组赋值

char stack_array[][]这个必须要至少指定一维,否则程序不知道如何定位你的数组元素,会报错:
改成如下:char stack_array[][30] //根据你的程序来