Puis-je faire un tel code:peut-il affecter la chaîne char * lors de l'exécution
char *p;
p = User_input;
Est-il possible d'assigner une chaîne à p
lors de l'exécution?
Puis-je faire un tel code:peut-il affecter la chaîne char * lors de l'exécution
char *p;
p = User_input;
Est-il possible d'assigner une chaîne à p
lors de l'exécution?
Bien sûr, vous pouvez, mais il n'y a pas string
en c, je pense que vous voulez dire char *
, comme
char *user_input = malloc(128);
scanf("%s", userinput);
p = user_input;
Vous devez allouer la mémoire avec malloc. Ensuite, vous pouvez utiliser strcpy pour assigner une chaîne à la mémoire allouée.
Bien sûr, vous pouvez. Notez que cette affectation copie uniquement le pointeur (l'adresse) vers la nouvelle variable. Il ne copie pas la chaîne elle-même.
Vous avez d'autres options si ce n'est pas ce que vous MENT:
char buf[1000];
strcpy(buf, User_input);
ou
char *p;
p = strdup(User_input);
Pour éviter buffer overflows with scanf dangereux. Utilisez fgets pour lire la ligne entière ou scanf avec un spécificateur de limite "%100s"
par exemple.
char buffer[128];
scanf("%127s", buffer);
char* my_input = strdup(buffer);
Vous pouvez placer le point 'p' sur une chaîne existante en définissant' p' comme un pointeur sur le premier caractère de cette chaîne. Mais avant de pouvoir obtenir des informations de la part de l'utilisateur, vous devrez probablement allouer de la mémoire pour obtenir l'entrée. –