Déclarer une variable chaîne / mot en C

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.

  1. tableau de caractères alloué statiquement.

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. 
  1. un pointeur sur une variable 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.