c语言-C语言中怎么用数组接收多个字符串

问题描述

C语言中怎么用数组接收多个字符串

#include

int main() {

char *colour[5];

colour[0] = "red";
colour[1] = "yellow";
colour[2] = "green";
colour[3] = "blue";
colour[4] = "pink";

return 0;

}

//请问这种方法对不对?
//如果想用键盘输入(scanf),该怎么定义?

解决方案

 #include <stdio.h>
#include <stdlib.h>

int main()
{
    char ** color = (char **)malloc(5 * sizeof (char *));
    for (int i = 0; i < 5; i++)
    {
        color[i] = (char *)malloc(100 * sizeof (char));
        scanf("%s", color[i]);
    }
    for (int i = 0; i < 5; i++)
        printf("%s", color[i]);
}

解决方案二:

 char colour[5][];

解决方案三:

你的写法也就可以的,即使用:指针数组。colour 的每个元素都是指针,没有问题。

解决方案四:

关于C语言字符串数组
c语言 数组和字符串
c语言中的数组和字符串
----------------------

时间: 2024-10-28 08:04:18

c语言-C语言中怎么用数组接收多个字符串的相关文章

c语言-C语言在函数中调用指数组的问题

问题描述 C语言在函数中调用指数组的问题 #include <stdio.h> int i=5; void output_array ( int array[] ){ int a; for ( a=0; a<i; a++ ){ printf ( "%i%s", &array[a], "t" ); //warning: format specifies type 'int' but the argument has type 'int *'

c语言-C语言中多维数组如何赋值

问题描述 C语言中多维数组如何赋值 请问 多维数组如何赋值 int a[3][4][5]; 请问C语言的前辈们 数组a中的元素个数是不是60个呢? 我是这样算出来的 这个多维数组是 12一维数组的集合 这个1维数组的元素有5个 12x5=60 解决方案 C语言 指针数组 多维数组C语言 指针数组 多维数组C语言中多维数组的理解 解决方案二: 最后一个参数是在一行当中确定一个,第二参数是在很多行当中确定一行,第一个参数是在很多页当中确定一页,为了确定某个元素,你必须先确定它在哪一页上,每一页都是4

c语言-C语言怎么用索引来指示数组中的每个元素

问题描述 C语言怎么用索引来指示数组中的每个元素 C语言怎么用索引来指示数组中的每个元素,能给个例子并解释一下 解决方案 比如 int x[] = {1,2,3}; int a = x[0]; 解决方案二: 应该可以用指针和下标两种办法,但是你说的索引是啥呢? 解决方案三: 索引就是下标,只是2个不同的叫法而已 我们先定义一个int类型数组 int a[2]; //我先进行了定义 int a[0]={1}; //然后分别对每个元素进行初始化 int a[1]={2}; //以上进行初始化的同时,

c语言结构体中指针数组怎样赋值

问题描述 c语言结构体中指针数组怎样赋值 定义一个结构体struct AS{ char *p[1]:}:怎样用gets函数给指针数组赋值呢? 解决方案 看Unix/Linux上的man: Standard C Library Functions gets(3C)NAME gets fgets - get a string from a stream SYNOPSIS #include char *gets(char *s); char *fgets(char *s int n FILE *str

C语言程序设计第二版 1.6数组练习1-13打印输入中单词长度的直方图的问题

问题描述 C语言程序设计第二版 1.6数组练习1-13打印输入中单词长度的直方图的问题 /* Note:Your choice is C IDE */ #include "stdio.h" #define MAXHIST 15 //柱状图长度 #define MAXWORD 11 //单词长度 #define IN 1 #define OUT 0 void main() { int c,i,nc,state; int len; int maxvalue; //wl[]的最大值 int

矩阵-c语言中两个数组相乘的问题

问题描述 c语言中两个数组相乘的问题 #include #include #define OK 1 #define ERROR 0 #define MAXSIZE 100 //最多非0元素的个数 #define MAXR 50 //rpos所能处理的最大行数 #define MAXC 50 //系数矩阵相乘时,保留临时列结果的数组temp[MAXC] typedef struct NODE{ //定义稀疏矩阵结点 int i; int j; int data; } Node; typedef s

深入解析C++中的字符数组和处理字符串的方法_C 语言

C++字符数组 用来存放字符数据的数组是字符数组,字符数组中的一个元素存放一个字符.字符数组具有数组的共同属性.由于字符串应用广泛,C和C++专门为它提供了许多方便的用法和函数. 字符数组的定义和初始化 定义字符数组的方法与前面介绍的类似.例如: char c[10]; c[0]=′I′;c[1]=′ ′;c[2]=′a′;c[3]=′m′;c[4]=′ ′;c[5]=′h′;c[6]=′a′;c[7]=′p′;c[8]=′p′;c[9]=′y′; 上面定义了c为字符数组,包含10个元素.在赋值

C++中关于[]静态数组和new分配的动态数组的区别分析_C 语言

本文以实例分析了C++语言中关于[]静态数组和new分配的动态数组的区别,可以帮助大家加深对C++语言数组的理解.具体区别如下: 一.对静态数组名进行sizeof运算时,结果是整个数组占用空间的大小: 因此可以用sizeof(数组名)/sizeof(*数组名)来获取数组的长度. int a[5]; 则sizeof(a)=20,sizeof(*a)=4.因为整个数组共占20字节,首个元素(int型)占4字节. int *a=new int[4];则sizeof(a)=sizeof(*a)=4,因为

深入解析C++中的指针数组与指向指针的指针_C 语言

指针数组定义:如果一个 数组,其元素均为指针型数据,该数组为指针数组,也就是说,指针数组中的每一个元素相当于一个指针变量,它的值都是地址. 形式:一维指针数组的定义形式为:int[类型名] *p[数组名] [4][数组长度];由于[ ]比*优先级高,因此p先与[4]结合,形成p[4]的数组的形式.然后与p前面的" * "结合," * "表示此数组是指针类型的,每个数组元素都相当于一个指针变量,都可以指向整形变量. 注意:不能写成int (*p)[4]的形式,这是指的