Definition de char

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

10 réponses

Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
4
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é
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
3
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
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
20
salut,

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

ShareVB
Messages postés
194
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
11 juin 2009

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
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
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.......
Messages postés
194
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
11 juin 2009

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
Messages postés
117
Date d'inscription
mardi 22 juillet 2003
Statut
Membre
Dernière intervention
21 janvier 2011

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;
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
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++;
Messages postés
194
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
11 juin 2009

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.
Messages postés
117
Date d'inscription
mardi 22 juillet 2003
Statut
Membre
Dernière intervention
21 janvier 2011

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...