精华内容
下载资源
问答
  • 二维字符数组

    2019-07-25 20:20:31
    1.二维字符数组元素的输入 2.二维字符数组元素的输出 3.字符数组元素按字符串大小排序 4.字符数组元素按字符串长度排序 printf("==================================\n"); printf("1------字符数组元素输入\n...

    实现功能:

    1.二维字符数组元素的输入

    2.二维字符数组元素的输出

    3.字符数组元素按字符串大小排序

    4.字符数组元素按字符串长度排序

     

    printf("==================================\n");

    printf("1------字符数组元素输入\n");

    printf("2------字符数组元素输出\n");

    printf("3------字符数组元素按字符串大小排序\n");

    printf("4------字符数组元素按字符串长度排序\n");

    printf("0------退出\n");

    printf("请输入你的选择\n");

    printf("==================================\n");

    #include<stdio.h>
    #include<string.h>
    #define N 5
    #define M 20
    
    void input(char arr[][M],int n);
    void output(char arr[][M],int n);
    void str_cmp(char arr[][M],int n);
    void str_cmp2(char arr[][M],int n);
    
    void str_cmp2(char arr[][M],int n)
    {
    	int i = 0;
    	int j = 0;
    	char s[M] = {0};
    	for(j = 0;j < n;j++)
    	{
    		for(i = 0;i < n-1-j;i++)
    		{
    			if(strlen(arr[i]) > strlen(arr[i+1]) )
    			{
    				strcpy(s,arr[i]);
    				strcpy(arr[i],arr[i+1]);
    				strcpy(arr[i+1],s);
    			}
    		}
    	}
    }
    
    void str_cmp(char arr[][M],int n)
    {
    	int i = 0;
    	int j = 0;
    	char s[M] = {0};
    	for(j = 0;j < n;j++)
    	{
    		for(i = 0;i < n-1-j;i++)
    		{
    			if(strcmp(arr[i],arr[i+1]) > 0)
    			{
    				strcpy(s,arr[i]);
    				strcpy(arr[i],arr[i+1]);
    				strcpy(arr[i+1],s);
    			}
    		}
    	}
    }
    
    void output(char arr[][M],int n)
    {
    	int i = 0;
    	for(i = 0;i < n;i++)
    	{
    		printf("%s\t",arr[i]);
    	}
    	printf("\n");
    }
    
    void input(char arr[][M],int n)
    {
    	int i = 0;
    	printf("请输入%d个字符串\n",n);
    	for(i = 0;i < n;i++)
    	{
    		scanf("%s",arr[i]);
    	}
    }
    
    int main(void)
    {
    	int op = 0;
    	char arr[N][M] = {0};
    
    	while(1)
    	{
    		printf("==================================\n");
    		printf("1------字符数组元素输入\n");
    		printf("2------字符数组元素输出\n");
    		printf("3------字符数组元素按字符串大小排序\n");
    		printf("4------字符数组元素按字符串长度排序\n");
    		printf("0------退出\n");
    		printf("请输入你的选择\n");
    		printf("==================================\n");
    		scanf("%d",&op);
    		if(op == 0)
    			break;
    		switch(op)
    		{
    			case 1:
    				input(arr,N);
    				break;
    			case 2:
    				output(arr,N);
    				break;
    			case 3:
    				str_cmp(arr,N);
    				output(arr,N);
    				break;
    			case 4:
    				str_cmp2(arr,N);
    				output(arr,N);
    				break;
    		}
    	}
    
    }
    

     

    展开全文
  • C语言二维字符数组详解

    万次阅读 多人点赞 2019-07-06 23:28:10
    二维字符数组一般用于存储和处理多个字符串,二维字符数组中的每一行均可存储表示一个字符串。 二维字符数组的定义 二维字符数组的定义格式为: char 数组名[第一维大小][第二维大小]; 如: char c[3][10]; //...

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

    二维字符数组的定义

    二维字符数组的定义格式为:

    char 数组名[第一维大小][第二维大小];

    如:

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

    二维字符数组的初始化

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

    
     
    1. char c[3][8]={{"apple"},{"orange"},{"banana"}};

    等价于:

    
     
    1. char c[3][8]={"apple","orange","banana"};

    以上两条初始化语句中,二维数组的第一维大小均可省略。数组 c 的逻辑结构如下所示:
     

      0 1 2 3 4 5 6 7
    c[0] a p p l e \0 \0 \0
    c[1] o r a n g e \0 \0
    c[2] b a n a n a \0 \0

     

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

    二维字符教组的引用

    可以使用行下标和列下标引用二维字符数组中的每个元素(字符),例如:

    
     
    1. char c[][10]={"apple","orange","banana"};


    以下均是对二维字符数组元素的合法引用:

    
     
    1. printf ("%c",c[1][4]); //输出1行4列元素'g'字符
    2. scanf ("%c",&c[2][3]); //输入一个字符到2行3列元素中
    3. c[2][0]='B'; //把字符赋值给2行0列元素
    4. printf ("%s",c[1]); //c[1]为第2行的数组名(首元素地址),输出 orange
    5. scanf ("%s",c[2]); //输入字符串到c[2]行,从c[2]行的首地址开始存放


    以下是对二维字符数组元素的非法引用:

    c[0][0]="A"; //行、列下标表示的为字符型元素,不能使用字符串赋值
    printf ("%c",c[2]); //c[2]为第3行的首地址,不是字符元素,故不能用%c

     

    【例 1】 分析以下程序,输出其运行结果。

    #include<stdio.h>
    int main (void){
    char c[3][5] = {"Apple","Orange","Pear"};
    int i;
    for(i=0;i<3;i++)
    printf ("%s\n",c[i]);
    return 0;}
    该数组各元素中的值如下所示。
    
    
      0 1 2 3 4
    c[0] A p p l e
    c[1] O r a n g
    c[2] P e a r \0

     

    
     
    1. printf ("%s\n",c[0]); //输出AppleOrangPear
    2. printf ("%s\n",c[1]); //输出OrangPear
    3. printf ("%s\n",c[2]); // Pear

    运行结果为:
    AppleOrangPear
    OrangPear
    Pear

     

    (来源自c语言中文网)http://c.biancheng.net/view/273.html

    展开全文
  • 如: 二维字符数组a[3][3] : a b c d e f g h l 那么如何将 g h l 追加到 a b c后面?
  • 二维字符数组一般用于存储和处理多个字符串,二维字符数组中的每一行均可存储表示一个字符串。二维字符数组的定义二维字符数组的定义格式为:char 数组名[第一维大小][第二维大小];如:char c[3][10]; //定义了一个3...

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

    二维字符数组的定义

    二维字符数组的定义格式为:

    char 数组名[第一维大小][第二维大小];

    如:

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

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

    二维字符数组的初始化

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

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

    等价于:

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

    以上两条初始化语句中,二维数组的第一维大小均可省略。数组 c 的逻辑结构如下所示:

    0

    1

    2

    3

    4

    5

    6

    7

    c[0]

    a

    p

    p

    l

    e

    \0

    \0

    \0

    c[1]

    o

    r

    a

    n

    g

    e

    \0

    \0

    c[2]

    b

    a

    n

    a

    n

    a

    \0

    \0

    二维字符教组的引用

    可以使用行下标和列下标引用二维字符数组中的每个元素(字符),例如:

    char c[][10]={"apple","orange","banana"};

    以下均是对二维字符数组元素的合法引用:

    printf ("%c",c[1][4]); //输出1行4列元素'g'字符

    scanf ("%c",&c[2][3]); //输入一个字符到2行3列元素中

    c[2][0]='B'; //把字符赋值给2行0列元素

    printf ("%s",c[1]); //c[1]为第2行的数组名(首元素地址),输出 orange

    scanf ("%s",c[2]); //输入字符串到c[2]行,从c[2]行的首地址开始存放

    以下是对二维字符数组元素的非法引用:

    c[0][0]="A"; //行、列下标表示的为字符型元素,不能使用字符串赋值

    printf ("%c",c[2]); //c[2]为第3行的首地址,不是字符元素,故不能用%c

    【例 1】 分析以下程序,输出其运行结果。

    #include

    int main (void)

    {

    char c[3][5] = {"Apple","Orange","Pear"};

    int i;

    for(i=0;i<3;i++)

    printf ("%s\n",c[i]);

    return 0;

    }

    分析:本题主要考查二维数组的逻辑结构和存储结构的区别。二维数组在逻辑上是分行分列的,但其存储结构却是连续的。

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

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

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

    故该数组各元素中的值如下所示。

    0

    1

    2

    3

    4

    c[0]

    A

    p

    p

    l

    e

    c[1]

    O

    r

    a

    n

    g

    c[2]

    P

    e

    a

    r

    \0

    由上述可以发现,该二维字符数组空间仅有一个字符串结束符 '\0',而 printf("%s",地址); 的功能是输出一个字符串,该串是从输出列表中的地址开始,到第一次遇到为止之间的字符组成的串。

    c[0] 为 c[0] 行的首地址,即 &c[0][0]。

    printf ("%s\n",c[0]); //输出AppleOrangPear

    printf ("%s\n",c[1]); //输出OrangPear

    printf ("%s\n",c[2]); // Pear

    运行结果为:

    AppleOrangPear

    OrangPear

    Pear

    注意,本例题仅是为了说明数组的逻辑结构和存储结构的区别,程序设计时,应避免这种情况。

    展开全文
  • 二维字符数组与字符串数组的使用

    千次阅读 2020-03-20 17:34:15
    二维字符数组与字符串数组的使用 一维字符数组的定义形式如下: <存储类型>char<数组名>[<常量表达式>]={<初始值>}; 二维字符数组定义的形式是: <存储类型>char<数组名>...

    二维字符数组与字符串数组的使用

    一维字符数组的定义形式如下:

    <存储类型>  char  <数组名>[<常量表达式>]={<初始值>}

    二维字符数组定义的形式是:

    <存储类型>  char  <数组名>[<常量表达式e1>] [<常量表达式e2>]={<初始值>}

    字符串数组定义的形式是:

    <存储类型>  string  <数组名>[<常量表达式e1>] ={<初始值>}

    二维字符数组定义的数组元素个数为:e1*e2。同数值数组一样,字符数组的每一维元素的下标都是从0开始。

    例如:

    char  aa[8]定义了长为8的一维字符数组aa

    char  bb[4][5]定义了4*5的二维字符数组bb

    string  cc[3]定义了含3个字符串的一维数组cc

     

    关于字符数组的初始化有如下两种方式:

    (1)    用字符常量初始化数组

    例如:

    char ch[5]={'a','b','c','d','\0'};

    或者:char ch[ ]={'a','b','c','d','\0'};    /*可以缺省数组定义长度,但不能少结尾符*/

    char st[3][6]={{'c','h','i','n','a','\0' },{'j','a','p','a','n','\0'},{'k','o','r','e','a','\0'}}; 

    或者:

    char st[ ][6]={{'c','h','i','n','a','\0' },{'j','a','p','a','n','\0'},{'k','o','r','e','a','\0'}};

    /*可以缺省行下标,但不能缺省列下标*/

     

    (2)    用字符串常量初始化数组

    例如:

    char ch[6]={"abcd"};

     

    33586048_1.gifuploading.4e448015.gif正在上传…重新上传取消文本框:  注意:用字符串常量方式赋值时,在末尾自动加上一个结束符'\0' 作为结束标志,比用字符常量赋值方式每行要多占一个字节。

     

    例如:

     char st[3][6]={"china","japan","korea"};

    或者:

    char st[ ][6]={"china" ,"japan","korea"};

    /*可以缺省行下标,但不能缺省列下标*/

     

    例如:

     string st[]={"china","japan","korea"};

     

     

    以下两段程序输出结果一样

     

     

    // 二维字符数组

    char a[3][6]={"Tread","Micro","Soft"};
    for(int i=0;i<3;i++)   {
    for(int j=0;j<6;j++)
    cout<<a[i][j];
    cout<<endl;   }
     
           // 字符串数组
    string b[]={"Tread","Micro","Soft"};
    for(i=0;i<3;i++)
    cout<<b[i]<<endl;
     

     

    展开全文
  • 二维字符数组的定义、赋值和使用

    万次阅读 多人点赞 2019-09-04 00:07:43
    二维字符数组一般用于存储和处理多个字符串,二维字符数组中的每一行均可存储表示一个字符串。 二维字符数组的定义 二维字符数组的定义格式为: char 数组名[第一维大小][第二维大小]; 如: char c[3][10]; //...
  • // 字符串辅助类 StringBuffer hql = new StringBuf ... express4.0之后不会解析req.files,必须加一个插件multer express 4 + 用multer express4.0之后不会解析req.files,必须加一个插件multer ...
  • 二维数组和二维字符数组 二维数组 首先,我们来介绍一下二维数组。 二维数组:int a[5][10]是内含50个int类型值的数组。 可以想象一下:可以是一个5行10列的数据表。 输入某一个数的行数和列数,就可以查找这个元素...
  • 二维字符数组排序

    2021-03-07 21:33:54
    1.输入多个字符串,存放二维字符数组中,并对二维字符数组进行排序,比如输入:“BBB”、 “CCC", “AAA”,最后二维字符数组的内容为"AAA ,“BBB”,“CCC” #include<stdio.h> #include<string.h> int ...
  • 圳 职 业 技 术 学 院Shenzhen Polytechnic 五单元7二维字符数组 教学内容 二维字符数组 教学目标 应知 二维数组的定义引用初始化 应会 使用二维数组进行简单程序编制 对项目单项目单1 的程序制作 难点 二维字符数组...
  • 二维字符数组的定义 二维字符数组的定义格式为: char 数组名[第一维大小][第二维大小]; 如: char c[3][10]; //定义了一个3行10列的二维字符数组c 由于该二维数组的每一行 c[0]、c[1]、c[2] 均是含有 10 个元素的...
  • 二维字符数组一般用于存储和处理多个字符串,二维字符数组中的每一行均可存储表示一个字符串。 二维字符数组的定义 二维字符数组的定义格式为: char 数组名[第一维大小][第二维大小]; 如: char c[3][10]; //...
  • 展开全部首先说明第一点,你这个代码只是给了一个片段,无法全局的对你编写32313133353236313431303231363533e78988e69d8331333431346430的代码评估并确认问题。现在可以修改的是获取控制台输入的...第步骤:ja...
  • 动态实现二维字符数组存放字符串 思路: 首先建立一维数组,每个元素都是char*型,再给每一个元素分配它的指向,使每一个元素都指向一个一维的char数组。这就实现了动态二维字符数组 分析:程序第4行先建立row个char...
  • 转载:sort对二维字符数组排序
  • 二维字符数组与字符串数组

    千次阅读 2019-07-22 10:46:00
    首先,对于一维字符数组:char a[N]={}; 其实最后代表的也是一个字符串 字符数组的初始化有两种方式: 但其实使用字符常量初始化数组的时候,可以不加上这个 '\0',而使用字符串初始化字符数组的时候,是自动...
  • 动态二维字符数组

    2020-02-02 18:45:01
    动态二维字符数组: 为什么输出前后每个字符串的地址都没变,但输出后的字符串明显不对?求大佬赐教【谢谢】 //动态二维数组测试 #include<stdio.h> #include<stdlib.h> void Function(char* p,int...
  • 关于二维字符数组

    2018-12-25 22:41:49
    二维字符数组是什么 本文结论均由实验获得 有这么一道题 char str[3][20]={“how”,“are”,“you”}; Ask:printf("%s\n,str[2]");的输出是什么? 实验结论: 1.以上数组str表示三个字符串。 2.gets(str)...
  • 第一种:用一个二维字符数组 #include<stdio.h> #include<string.h> int main() { char str[3][20]; char string[20]; int i; for(i=0;i<3;i++) gets(str[i]); if(strcmp(str[0],str[1]...
  • C语言二维字符数组的输入

    万次阅读 多人点赞 2018-11-22 22:32:02
    标题 C语言字符数组的输入输出 定义一个字符二维数组,输入行数n,与列数m #include &lt;stdio.h&gt; #include &lt;math.h&gt; int main() { int n,m,i,j; scanf("%d %d",&amp;n,&...
  • 反转字符数组元素 gets(str);//键入数组 int len, i; len = strlen(str);//会用到 char temp; for (i = 0; i ; i++) { temp = str[i]; str[i] = str[len - 1 - i]; str[len - 1 - i] = temp; } printf("%s", str); ...
  • 一个 字符串数组就是一个二维字符数组。 #include <stdio.h>#include <string.h> /*输入5个学生的名字(英文),使用冒泡排序按从大到小排序。提示:涉及到字符串数组,一个字符...
  • 反转字符数组元素 gets(str);//键入数组 int len, i; len = strlen(str);//会用到 char temp; for (i = 0; i ; i++) { temp = str[i]; str[i] = str[len - 1 - i]; str[len - 1 - i] = temp; } printf("%s", str); ...
  • c语言: 关于二维字符数组(字符串数组)作为函数参数时的问题错误的示范正确的示范为什么会错,后续补充 错误的示范 定义: void func(char *strs[255]) or oid func(char **strs) 使用: char a[4][255] = {0}; ...
  • 1、将字符串数组转化为二维字符数组 2、将第一个字符数组作为基准去检测其余字符数组 3、将判断是公共前缀的字符加入StringBuffer类中,作为输出结果 主方法 public static void main(String args[]){ String []...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,849
精华内容 3,139
关键字:

二维字符数组