Je suis assez nouveau en C et je me demandais comment déclarer une variable mot.
Par exemple, alors que
int variable;
est capable de contenir uniquement une valeur entière, je voudrais pouvoir déclarer une variable pouvant contenir un mot ou une chaîne, par exemple
ssortingng name = "Joe";
ou
ssortingng name = "My name is Joe";
Cependant, cela bloque juste mon programme, et je suppose que c’est parce que la ssortingng
n’existe pas et qu’il ya quelque chose à voir avec des problèmes de mémoire.
C’est tout mon code:
#include int main () { printf("What is your name?\n"); **ssortingng** name; scanf("%s", &name); printf("Hello, %s", name); getch(); return 0; }
char name[30]; /* pre-allocated memory of stack */
Puis scannez cette valeur en. Ou
char *name = malloc(sizeof(char) * 30); /* run-time allocation on heap */
J’utilise simplement 30 ici en supposant que la chaîne d’entrée tienne dans 30 caractères, vous pouvez l’augmenter ou la diminuer, cela dépend de votre souhait.
Déclarez votre tableau comme suit:
char name[20]; //^^Here you can choose what you want!
Aussi je voudrais lire la chaîne comme suit:
scanf(" %s", &name); //^See the space here! The space is there so if a '\n' is still in the buffer it doesn't get read in for the name!
BTW: Peut-être que vous voulez jeter un oeil ici: http://www.cplusplus.com/doc/tutorial/
Cela permettrait de stocker un max. Chaîne de 50 caractères
char word [50+1];
Mais si vous voulez définir la taille pendant l’exécution, utilisez ceci:
char *word = (char*)malloc(sizeof(char)*length);
Vous pouvez utiliser le tableau pour stocker la valeur. Déclarez le tableau.
Comme ce char name[20];
scanf("%s", name);
Vous avez deux options pour vous.
Exemple.
char cArray[16] = "Hello"; //will have 16 elements, initialized 5 with hello
ou
char cArray[ ] = "Hello"; //number of char element is 6, considering terminating null.
char
avec de la mémoire allouée dynamicment. Exemple:
char * cPtr = NULL; cPtr = malloc(16); //again, 16 char elements
Remarque: Un tableau de caractères, lorsqu’il doit être utilisé en tant que chaîne , DOIT être terminé avec null.