将字符串存储到c中的数组中

时间:2014-01-27 09:01:52

标签: c arrays

据我所知,我可以创建一个包含项目的数组,例如:

char *test1[3]= {"arrtest","ao", "123"};

但是如何将我的输入存储到上面的代码中,因为我只能将其编码为

input[10];
scanf("%s",&input) or gets(input);

并将每个char存储到每个空间中。

如何存储输入“HELLO”,使其存储到输入[0]但现在

H输入[0],E输入[1],依此类推。

6 个答案:

答案 0 :(得分:5)

你需要一个二维字符数组来拥有一个字符串数组:

#include <stdio.h>

int main()
{
    char strings[3][256];
    scanf("%s %s %s", strings[0], strings[1], strings[2]);
    printf("%s\n%s\n%s\n", strings[0], strings[1], strings[2]);
}

答案 1 :(得分:2)

使用二维数组char input[3][10];

一个char指针数组(如char *input[3];),应该在这些位置保存任何值之前动态分配内存。

First Case,输入值为scanf("%s", input[0]);,类似于input[1]input[2]。请记住,您可以在每个10中存储最大尺寸'\0'(包括input[i]字符)的字符串。

在第二种情况下,以与上面相同的方式获取输入,但之前使用input[i]为每个指针malloc分配内存。在这里,您可以灵活地调整每个字符串的大小。

答案 2 :(得分:0)

真的不明白你需要什么。但这是我猜的。

char *a[5];//array of five pointers

for(i=0;i<5;i++)// iterate the number of pointer times in the array
{
char input[10];// a local array variable
a[i]=malloc(10*sizeof(char)); //allocate memory for each pointer in the array here
scanf("%s",input);//take the input from stdin
strcpy(a[i],input);//store the value in one of the pointer in the pointer array
}

答案 3 :(得分:0)

尝试以下代码:

char *input[10];
input[0]=(char*)malloc(25);//mention  the size you need..
scanf("%s",input[0]);
printf("%s",input[0]);

答案 4 :(得分:0)

int main()
{

int n,j;
cin>>n;
char a[100][100];
for(int i=1;i<=n;i++){
    j=1;
    while(a[i][j]!=EOF){
        a[i][j]=getchar();
        j++;
    }
}

答案 5 :(得分:0)

这段代码激发了我如何将用户输入字符串转换为数组。如果我不遵守关于如何发表评论的规则,那么我是C和新董事会的新人,我很抱歉。我试图解决问题。

#include <stdio.h>

int main()

{

char strings[3][256];

scanf("%s %s %s", strings[0], strings[1], strings[2]);

printf("%s\n%s\n%s\n", strings[0], strings[1], strings[2]);

}