Comme je le sais, je peux créer un tableau avec un élément à l'intérieur tel que:
char *test1[3]= {"arrtest","ao", "123"};
mais comment puis-je stocker mon entrée dans tableau comme le code ci-dessus parce que je ne peux que le coder comme
input[10];
scanf("%s",&input) or gets(input);
et il stocke chaque personnage dans chaque espace.
Comment puis-je stocker l'entrée "BONJOUR" telle qu'elle enregistre dans l'entrée [0]
H pour saisir [0], E pour saisir [1], etc.
Vous avez besoin d'un tableau de caractères à 2 dimensions pour avoir un tableau de chaînes:
#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]);
}
Utilisez un tableau à 2 dimensions char input[3][10];
ou
un tableau de pointeurs char
(comme char *input[3];
) qui doivent être alloués de manière dynamique à la mémoire avant que toute valeur soit enregistrée à ces emplacements.
Premier cas, prenez les valeurs d'entrée en tant que scanf("%s", input[0]);
, de même pour input[1]
et input[2]
. N'oubliez pas que vous pouvez stocker une chaîne de taille maximale 10
(y compris le caractère '\0'
) dans chaque input[i]
.
Dans le second cas, entrez les données de la même manière que ci-dessus, mais allouez de la mémoire à chaque pointeur input[i]
en utilisant malloc
avant. Ici, vous avez la flexibilité de la taille pour chaque chaîne.
essayez ci-dessous le code:
char *input[10];
input[0]=(char*)malloc(25);//mention the size you need..
scanf("%s",input[0]);
printf("%s",input[0]);
Ce code m'a inspiré sur la façon d'obtenir mes chaînes d'entrée utilisateur dans un tableau. Je suis nouvelle dans C et dans ce forum, je m'excuse si je ne respecte pas certaines règles pour publier un commentaire. J'essaie de comprendre les choses.
#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]);
}
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++;
}
}
Je n'ai pas vraiment compris ce dont tu as besoin. Mais voici ce que j'ai deviné.
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
}