begin process at 2012 05 28 18:43:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Autre

 > 

comparer deux string


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

comparer deux string

jeudi 16 décembre 2010 à 00:43:14 | comparer deux string

roubalist21

voici le code:
Code C/C++ :
for(i=0;i<maxDF;i++)
	{
		for(j=1;j<(maxS+1);j++)
		{
			if(tabDF[i][j]!=NULL)
			{
				for(k=0;k<=fins;k++)
				{
					if(tabDF[i][j]==tabS[k])
					{			
						y=1;
					}
				}
				if(y==0)
				{
					tabS[fins]=tabDF[i][j];
					fins++;
				}
				y=0;
			}
		}
	}

il y'a des valeurs de tabS qui ressemble exactement à tabDF mais jamais la condition "if" n'est verifié, j'ai beau essayé la même procédure dans un code à part, et ça marche parfaitement.
le tableau tabS c'est un tableau char **tabS une dimension mais de chaine de caractère, le deuxième tabDF c'est un char ***tabDF deux dimensions chaine de caractère .
merci pour toute suggestion.
jeudi 16 décembre 2010 à 09:22:29 | Re : comparer deux string

buno

Administrateur CodeS-SourceS
Hello,
On ne fait pas de "==" entre chaines de caractères.
Pour cela, utilises strcmp() ou stricmp()

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
jeudi 16 décembre 2010 à 11:40:02 | Re : comparer deux string

roubalist21

marche pas, erreur de segmentation
jeudi 16 décembre 2010 à 11:42:31 | Re : comparer deux string

buno

Administrateur CodeS-SourceS
ça veut dire que tes chaines sont mal formatées (manque le dernier \0 par exemple)

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
jeudi 16 décembre 2010 à 11:57:03 | Re : comparer deux string

roubalist21

en faite je compare deux chaines de caractère , la première se trouve dans un tableau a une dimensions

{char **tab1; tab1=(char**)malloc(sizeof(char*)*nbr);}

la deuxième se trouve dans un tableau à deux dimensions

{char ***tab2; tab2=(char***)malloc(sizeof(char**)*nbr);
for(i=0;i<nbr;i++)
{ tab2[i]=(char**)malloc(sizeof(char*)*nbr)} }

et je fais par exemple: char *chaine; chaine = "truc"; tab2[i][j]=chaine;
puis char *chaine2; chaine2="machin"; tab1[i]=chaine2;
et lors de la comparaison, strcmp(tab1[i],tab2[i][j]) ça foire
jeudi 16 décembre 2010 à 12:02:17 | Re : comparer deux string

buno

Administrateur CodeS-SourceS
Code C/C++ :
{char **tab1; tab1=(char**)malloc(sizeof(char*)*nbr[b]+1[/b]);}

il ne faut pas oublier le caractère de fin de chaine.

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
jeudi 16 décembre 2010 à 12:09:21 | Re : comparer deux string

roubalist21

justement comment on le rajoute , parceque moi l'allocation dynamique est faite juste pour les cases du tableau, j'ai pas du tout fait l'allocation pour les caractères de la chaine, vu que je ne conné pas la taille de chaque chaine.
jeudi 16 décembre 2010 à 13:56:39 | Re : comparer deux string

buno

Administrateur CodeS-SourceS
Je/tu m'embrouilles...
D'où te viennent tes chaines de caractères? L'intérêt justement de l'allocation dynamique réside dans le fait de ne pas connaître les tailles des chaines à la compil.

D'ailleurs, quel est l'objectif de ton code?

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
jeudi 16 décembre 2010 à 14:03:32 | Re : comparer deux string

roubalist21

alors le tableau a une dimension doit contenir toutes les chaines de caractère du tableau a deux dimensions sans redondance.
jeudi 16 décembre 2010 à 14:18:47 | Re : comparer deux string

buno

Administrateur CodeS-SourceS
Réponse acceptée !
Bon, je pars du principe que ton tableau 2D est bon. Voici l'algo que je verrais.
Pour le parcourir, effectivement, il te faut 2 boucles imbriquées
Après, pour chaque chaine du tableau 2D
Vérifier que cette chaine n'apparait pas dans ton tableau résultat:
Pour chaque chaine sauvée
Est-elle identique à la "chaine 2D"
Si non, l'ajouter*
fpour
fpour

*Pour l'ajouter:
tabS = (char*)malloc(strlen(chaine2D)+1);
strcpy(tabS[i++], chaine2D);

@+
Buno
----------------------------------------
[i]L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...

Rejoignez mon réseau professionnel sur Viadeo


Cette discussion est classée dans : code, for, tabs, if, tabdf


Répondre à ce message

Sujets en rapport avec ce message

Code QBasic à convertir Cpp [ par SneakGuy ] Salut, j'ai besoin d'aide pour convertir ce code QBasic en Cpp...*Désoler, tous les signes"plus" sont remplacés par la lettre p. Merci.CLSFOR x = 1 stopper une boucle for et la recommencer [ par danis56 ] Bonjour , J'ai un probleme avec une partie de mon programme . Je doit bloquer une boucle for a l'interieur de son code et je n'y arrive pas , j'ai ess Visual C++ 8.0 ?? [ par MasterShadows ] Salut à tous, alors voilà je voulais savoir si visual c++ 7 pouvait être télécharger, j'ai donc fait une recherche sur internet et j'aivu que la versi typdef enum [ par oudkaramla ] salut tout le monde,j'ai un problem dans la définition d'une valeure d'un type enumeré et de lui affecter une valeure:le ty enumeré est le suivanttype typedef enum [ par oudkaramla ] salut tout le monde,j'ai un problem dans la définition d'une valeure d'un type enumeré et de lui affecter une valeure:le ty enumeré est le suivantty Processus (HWP) multiple C sous UNIX? [ par cbismuth ] Bonjour à tous!Une question me rend fou depuis plusieurs jours...Je souhaite créer N processus (HWP, pas des threads) en C sous UNIX avec une boucle " Probème avec un hook [ par Chayy ] Bonjour,je rencontre actuellement un petit soucis avec un hook. J'essaye de poser un hook souris, et d'effectuer un traitement lorsque le pointeur de Projet C Jeu d'echec [ par Hugo Dam ] Bonsoir, Je code actuellement un jeu d'echec. Celui ci compile bien mais lors de l'execution il m'affiche erreur de segmentation des lors que je fais copie [ par souhila30 ] j'ai besoin d'un code source+executable en builder c++ concernant la copie de fichier pcq j'essaye avec le code source suivant mais sans résultat: if décompte multiclic [ par cghes ] bonjour à tous!Je sonne la tirette d'aide car après plus d'un essai je ne arrive pas...voila je viens de mettre en place un systeme de ptc ( pay to cl


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,380 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales