Definition de char

Résolu
noSnoR Messages postés 62 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 11 avril 2006 - 16 mars 2005 à 19:24
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 - 17 mars 2005 à 08:37
Je programme depuis peu de temps, et j'ai besoin d'initialiser une chaine de characteres automatiquement... mersi de m'aider

10 réponses

steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
17 mars 2005 à 08:37
char *str = "Hello"; (en C++ const char *str="Hello")



str est ici un pointeur initialisé avec l'adresse d'une chaine constante (pas de modifications possible).



char str[] = "Hello";



str est un tableau de strlen("Hello")+1 (ou sizeof "Hello")
caractères initialisé avec une chaine constante (donc modifiable, mais
taille limité à celle de la chaine d'initialisation).



char str[256] = ""; équivalent à char str[256] = {0}



str est un tableau de 256 caractères initialisé avec des zeros ('\0').



char str[256] = "Hello";



str est un tableau de 256 caractères initialisé avec une chaine constante, le reste du tableau contenant des zeros.



Uniquement en c++:



#include <string>



std::string str = "Hello";



Trés conseillé
3
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
16 mars 2005 à 19:53
Je pense que ce que tu veux c'est ça :

char String[128]; // déclaration de la chaine de caractères "String"

memset(String,'\0',sizeof(String)); // initialisation de la chaine (l'efface)

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
16 mars 2005 à 22:03
salut,

ou
char buff[] = "ta chaine";
ou
char buff[128]={0}; //j'ai un doute

ShareVB
0
EMSIEN Messages postés 194 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 11 juin 2009
16 mars 2005 à 23:01
Bonjour Pour ma part voici ma version ou plutôt ma façon d'initialiser ma chaine de caractère:
1-soit si tu connais deja sa taille par exemple (10caractère au maximum) tu feras
char chaine[10]={"ta chaine"};

2-si tu connais pas la taille tu fais:
char *chaine={"ta chaine"};
mais je crois que tu devras pas dépasser 255 caractères
essaie ce truc et Bonne chance pour la suite
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 2
16 mars 2005 à 23:09
Bon puisque on y est voici encore un exemple (un ti peu plu dur):

char *pC;//pointeur sur un char
int nbCaractere;

pC=new char[nbCaractere+1];// "+1" c si tu doit rajouter le caractere de fin de ligne (\n)

Cette façon (ditte dynamique) a l'avantage de pouvoir créer un tableau de taille voulu lors
de l'execution du programme.

N'hésite pas si ya d truc que tu pige pas.......
0
EMSIEN Messages postés 194 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 11 juin 2009
16 mars 2005 à 23:17
Je crois que new est en C++,mais je sais pas si cette personne programme en ou c++,
en tt cas j'ai besoin tibob51 stp en parlant de ça d'allouer un vecteur de chaine(vecteur contenant des string)
jarrive pas à le faire ni avec malloc(c) ni avec new(c++)
voici mon vecteur
char *chaine[10]={''....",".....",.........,"...."}
10 représente le nombre de chaines de mon vecteur et je cherche une façon dynamique pour pouvoir allouer et libérer la mémoire.
Merci d'avance
0
jul39dole Messages postés 117 Date d'inscription mardi 22 juillet 2003 Statut Membre Dernière intervention 21 janvier 2011
16 mars 2005 à 23:25
suite au post de tibob51 :
ne pas oublier de faire un delete [] pC, sinon gare au fuite mémoire...

Qd tu parles de vecteur, tu parles de la classes vector de la stl ? ou c'est juste pour désigner un tableau de tableau ?

=>Dans le premier cas :
#include <vector.h>
vector<char*> v;
v.push_back(chaine1); // pour ajouter dans le vecteur
// v[0] pour y accéder

=>Dans le deuxième cas :
char** chaine; //pointeur de pointeur, assez technique !
chaine= new char*[2];
chaine[0]=new char[20];
chaine[1]=new char[15];
//chaine[0] : accède à la première chaine
//et à la fin, ne pas oublier de tout effacer
delete [] chaine[0];
delete [] chaine[1];
delete [] chaine;
0
tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 2
16 mars 2005 à 23:29
Merçi jul39dole de ta corection j'avias oublié.
EMSIEN par contre j'ai eu un peu de mal a piger ton problème si c
ce que je pense la proposition de jul39dole est bonne.
A++;
0
EMSIEN Messages postés 194 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 11 juin 2009
16 mars 2005 à 23:34
Je comprends ce que tu dis,mais pour mon ou plutot mon but derière tt ça et de réaliser un menu paramétré ou je lui envoie un vecteur(tableau) de chaines et il prends la *chaine[0] comme titre et les autres éléments comme choix du menu pour que ça soit clair pr vs voici mon MSN: [mailto:shkaff@hotmail.com shkaff@hotmail.com] comme ça je pourrais vous envoyer mon prog pr mieux comprendre mon prob et merci encore à ts.
0
jul39dole Messages postés 117 Date d'inscription mardi 22 juillet 2003 Statut Membre Dernière intervention 21 janvier 2011
16 mars 2005 à 23:57
rien ne t'empêche de passer en paramètre de fonction soit &v, ou chaine (en reprenant mes exemples), libre à toi de les exploiter comme tu veux, pour remplir tes menus, ou autre...
0
Rejoignez-nous