[C/C++]Taille chaine caractère

Résolu
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008 - 22 août 2004 à 14:59
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008 - 23 août 2004 à 14:25
Salut,

Je n'arrive pas à définir la taille de ma chaine de caractère à l'aide d'une variable (nb).
CHAR CHAINE[NB];

En fait il faut que je limite la taille d'un mot que je prend dans une liste, mais cette taille varie en fonction de l'utilisateur.

Comment puis je faire ???

10 réponses

cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
23 août 2004 à 10:53
"Parce que si je rentre: ordi et que le mot de la liste est ordinateur => ça me le trouve pas."

utilise strstr

mais le probleme c'est que tu n'a pas bien compris les chaines, la taille alloué n'importe pas
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 août 2004 à 15:14
alloc dynamique par malloc ou new.

ciao...
BruNews, Admin CS, MVP Visual C++
0
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
22 août 2004 à 15:33
Je voit pas comment faire ensuite
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
22 août 2004 à 15:45
tu saisie dans un tableau temporaire de grande taille et tu alloue (malloc) ensuite une chaine (char*) en fonction de sa taille (strlen) et tu copie (strcpy)

ou alors tu fais ca en c++ (std::string)
0

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

Posez votre question
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
22 août 2004 à 16:35
J'ai fait ça :

taille=3;

point = (char *)malloc(taille*sizeof(char)+1);

SendMessage(hCtrl,LB_GETTEXT,line, (LPARAM)(LPTSTR)point);

Mais les valeurs retournées par point ne sont pas limitées en nombre de charactères.
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
22 août 2004 à 16:42
point = (char *)malloc(taille*sizeof(char)+1);

>

point = malloc(taille + 1);

point pointe sur un bufffer de 4 octets, tu copie quoi et comment ?
0
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
22 août 2004 à 16:51
Je copie une liste ligne par ligne pour faire une recherche.

Je veux faire une chaine de taille variable pour que même si le mot rentré n'est pas exact ça le trouve quand même.

Parce que si je rentre: ordi et que le mot de la liste est ordinateur => ça me le trouve pas.

Si vous avez une idée meilleure, elle est la bienvenue.

Mon code:

//On récupère un HWND sur le controle auquel on va récupérer les mots à vérifier
hCtrl=GetDlgItem(Dlg,IDC_LIST);

//Pour l'instant définit une taille de 3
taille=3;

// Allocation mémoire pour une chaîne de "taille" caractères.
point = (char *)malloc(taille*sizeof(char)+1);

//On récupère le nom du produit de la ligne "line"
SendMessage(hCtrl,LB_GETTEXT,line, (LPARAM)(LPTSTR)point);

//On récupère un HWND sur le controle auquel on va envoyer les noms des produits vérifiés
hCtrl=GetDlgItem(Dlg,IDC_RESULT);
//On envoie les noms des produits
SendMessage(hCtrl,LB_ADDSTRING,NULL, (LPARAM)(LPTSTR)point);

Pour l'instant j'envoie le nom des produits vérifiés pour voir si leur taille se limite ou pas, et là ça marche pas...
0
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
23 août 2004 à 09:41
SVP j'ai vraiment besoin de ça pour finir mon programme.

Si quelqu'un pouvait m'aider une dernière fois ça serait sympa.
0
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
23 août 2004 à 11:07
Ok je vais faire des recherches sur strstr.

Merci
0
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
23 août 2004 à 14:25
C'est bon j'ai réussi !!!
Merci et @++++++.
0
Rejoignez-nous