Débutant en C
Résolu
Bonjour à tous,
voici une question certainement toute bête pour les pros du C...
J'ai une erreur à la compil en voulant faire :
char vers[5];
vers = 'V0190';
??? quelqu'un pourrait me dire pourquoi et me dire koi faire ?
Merci d'avance pour votre aide.
A+
voici une question certainement toute bête pour les pros du C...
J'ai une erreur à la compil en voulant faire :
char vers[5];
vers = 'V0190';
??? quelqu'un pourrait me dire pourquoi et me dire koi faire ?
Merci d'avance pour votre aide.
A+
5 réponses
-
Je ne suis pas sur mai je crois qu'il fo que tu mette :
vers = "VO191"; -
Moi j t suggere d'initialiser le tableau "vers" au debut de la declaration a savoir
char vers{VO191}; -
Bonsoir,
Moi, j'écrirais l'instruction suivante :
char vers [5] = { 'V', '0', '1', '9', '0' };
a+ -
Je pense que la meilleure maniere d'initialiser au début mais sinon tu peux toujours le remplir case par case : vers[0]='V';
-
-Moi je te conseille soit de l'initialiser au debut
char vers[6]="V0190"; //6 parce que y a un caractere nul si tu veux que ca soit une chaine de caractere
ou
char vers[]="V0190";
-ou sinon y a l'option de declarer ton tableau et de le remplir apres...
#include <string.h>
char vers[6];
strcopy(vers,"V0190");
-et voila! (y a toujours aussi la methode d'allocation dynamique... mais bon :P)-
-
@etienne aussi, mais un autre ;-)Salut,
Ben non, en C lorsque l'on écritchar vers[]="V0190";
le compilateur va réserver le nombre exact de caractères permettant de stocker la chaine correctement délimitée, caractère /0 compris donc.
Aucun problème à craindre de cette syntaxe.
A++
-
@RavacholPouet,
caractère \0 compris donc. -
@RavacholTout d'abord, merci à tous pour votre aide.
Donc pour résumer, je peux faire ça :
char vers[]="V0190";
sprintf (to_print, "Ma chaine est %s", vers);
n'est ce pas ? -
@NicoSalut,
Si tu veux juste afficher la chaine tu peux écrire plus simplement comme cela:char vers[]="V0190"; printf ("Ma chaine est %s", vers);
Eventuellement ajouter un \n après le %s pour positionner le curseur sur la ligne suivante.
A++
-