据我所知,我可以创建一个包含项目的数组,例如:
char *test1[3]= {"arrtest","ao", "123"};
但是如何将我的输入存储到上面的代码中,因为我只能将其编码为
input[10];
scanf("%s",&input) or gets(input);
并将每个char存储到每个空间中。
如何存储输入“HELLO”,使其存储到输入[0]但现在
H输入[0],E输入[1],依此类推。
答案 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]);
}