topic unique Drife ^^
Dernière réponse : dans Programmation
Bonjours,
avant toutes chose un peu d'indulgnce ça fait a peine 2 semaine que je programme
j'en suis donc au chaine de caratère, un passage difficile
j'essait desespérément pour m'entrainer de reprogrammer les fonction sur chaine de caractere .
j'ai déja réussi a faire celle qui calcule la longueur de la chaine, celle
qui copie 2chaine, et celle qui concatène 2 chaine.
mais je n'arrive pas a faire celle qui compare 2chaine, et ça fait 3jour que je sèche j'en ait trop marre .
pouriez vous m'aider ?
ce programme est donc sensé dire si oui ou non les chaine sont identique, pour ça une fonction renvoie 1 pour identique, et 0 pour différent .
le problème c'est qu'elle renvoit toujours 1
voila le code :
je sais qu'il est foireux , mais je n'arrive pas a comprendre pourquoi.
merci de m'écliarer
avant toutes chose un peu d'indulgnce ça fait a peine 2 semaine que je programme
j'en suis donc au chaine de caratère, un passage difficile
j'essait desespérément pour m'entrainer de reprogrammer les fonction sur chaine de caractere .
j'ai déja réussi a faire celle qui calcule la longueur de la chaine, celle
qui copie 2chaine, et celle qui concatène 2 chaine.
mais je n'arrive pas a faire celle qui compare 2chaine, et ça fait 3jour que je sèche j'en ait trop marre .
pouriez vous m'aider ?
ce programme est donc sensé dire si oui ou non les chaine sont identique, pour ça une fonction renvoie 1 pour identique, et 0 pour différent .
le problème c'est qu'elle renvoit toujours 1
voila le code :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
long fonctionComparaison(char *chaine1,char *chaine2);
int main()
{ char chaine1[30]="texte de test", chaine2[30]="texte de test";
long nombreDeReference=0;
fonctionComparaison(chaine1, chaine2);
if (nombreDeReference==1)
{
printf("les chaines sont identiques");
}
else if (nombreDeReference==0)
{
printf("les chaines sont differentes");
}
printf("c'est la chaine1 %s", chaine1);
printf("c'est la chaine2 %s", chaine2);
printf("c'est le nombre de reference %ld", nombreDeReference);
system("PAUSE");
return 0;
}
long fonctionComparaison(char *chaine1,char *chaine2)
{
long nombreDeReference=0;
long i;
for (i=0;chaine1[i]!='\0';i++)
{
if (chaine1[i]==chaine2[i])
{
nombreDeReference=1;
return nombreDeReference;
}
else
{
nombreDeReference=0;
return nombreDeReference;
}
}
}
je sais qu'il est foireux , mais je n'arrive pas a comprendre pourquoi.
merci de m'écliarer
Autres pages sur : topic unique drife
Lassé par la pub ? Créez un compte
ben non ça marche pas
voici le code
la j'en suis plus au stade de demander mes erreurs, je voudrais qu'onme dise le code qui marche.
je l'étudierai et j'en apprendrais plus qu'en ramant comme un con .
voici le code
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
long fonctionComparaison(char *chaine1,char *chaine2);
int main()
{ char chaine1[]="texte de test", chaine2[]="texte de test";
long nombreDeReference=0;
fonctionComparaison(chaine1, chaine2);
if (nombreDeReference==1)
{
printf("les chaines sont identiques");
}
else if (nombreDeReference==0)
{
printf("les chaines sont differentes");
}
printf("c'est la chaine1 %s", chaine1);
printf("c'est la chaine2 %s", chaine2);
printf("c'est le nombre de reference %ld", nombreDeReference);
system("PAUSE");
return 0;
}
long fonctionComparaison(char *chaine1,char *chaine2)
{
long nombreDeReference=0;
long i=0;
while (chaine1[i]!='\0')
{
if (chaine1[i]!=chaine2[i])
return 0;
i++;
}
if (chaine2[i]=='\0')
return 1;
else return 0;
}
la j'en suis plus au stade de demander mes erreurs, je voudrais qu'onme dise le code qui marche.
je l'étudierai et j'en apprendrais plus qu'en ramant comme un con .
et voila
ça y est cette putain de fonction marche enfin
par contre bien entendu je n'arrive absolument pas a coder celle qui cherche un caractère
je me demande si c'est bien utile de recoder toutes ces fonction mais il parait que c'est un bon entrainement^^
vous en pensez quoi ?
sinon vous auriez une piste pour reproduire cette foutue fonction qui recherche un caractere ?
merci
ça y est cette putain de fonction marche enfin
par contre bien entendu je n'arrive absolument pas a coder celle qui cherche un caractère
je me demande si c'est bien utile de recoder toutes ces fonction mais il parait que c'est un bon entrainement^^
vous en pensez quoi ?
sinon vous auriez une piste pour reproduire cette foutue fonction qui recherche un caractere ?
merci
mon niveau : au cas ou vous l'auriez pas remarqué : nul ^^
je maitrise les variable et opération sur les variable , les tableau , les condition, a peu près les pointeurs.
et puis j'essaye de bien maitriser les chaine de caractere.
mon but dans la vie ?
maitriser corectement le C pour ensuite apprendre a faire du SDL ,et peu etre un jour de l'openGL
je suis très motivé j'adore programmer sauf quand je reste bloqué très longtemps sur la meme chose.
en fait je voudrais faire une fonction qui dans une chaine de caractere recherche un caractere et indique si il est présent ou non en renvoyant 1 ou zero.
ensuite si je réussi a faire ça je ferai une fonction qui grace a un pointeur sur un caractere enverrais la fin de la chaine , comme je sais plus quelle fonction déja écrite de string.h
je maitrise les variable et opération sur les variable , les tableau , les condition, a peu près les pointeurs.
et puis j'essaye de bien maitriser les chaine de caractere.
mon but dans la vie ?
maitriser corectement le C pour ensuite apprendre a faire du SDL ,et peu etre un jour de l'openGL
je suis très motivé j'adore programmer sauf quand je reste bloqué très longtemps sur la meme chose.
en fait je voudrais faire une fonction qui dans une chaine de caractere recherche un caractere et indique si il est présent ou non en renvoyant 1 ou zero.
ensuite si je réussi a faire ça je ferai une fonction qui grace a un pointeur sur un caractere enverrais la fin de la chaine , comme je sais plus quelle fonction déja écrite de string.h
par fin de chaine j'entend ceci :
imagine une chaine boite a musique (je dis nimp
).
ma fonction , je lui envoit (chaine, 'm')
elle me renvoit "musique", soit la fin de la chaine a partir de m.
mais bon ça c'est pour plus tard lol,car pour l'instant je suis occupé avec une fonction qui se contente de dire si oui ou non le caractere demandé est prsésent dans la cahine, et il y a un défault que je n'arrive pas a éliminer.
bon tout d'abord,cette fonction marcahit très bien, tant que je définnissait d'avance le caractere rechercher.
j'ai donc voulu faire mieu, en proposant a l'utilisateur de choisir le caractere a rechercher.
j'ai donc écrit cette fonction :
lorsque que le caractere est présent, elle marche très bien
par contre lorsque le caractere n'est pas présent, on me dit "ce programme va etre arreter parce que ...." .
je n'arrive pas a comprendre pourquoi ça marche lorsque le caractere est dans la cahine, et que ça marche pas quand il ne l'est pas
.
merci de m'aider encore
imagine une chaine boite a musique (je dis nimp
).ma fonction , je lui envoit (chaine, 'm')
elle me renvoit "musique", soit la fin de la chaine a partir de m.
mais bon ça c'est pour plus tard lol,car pour l'instant je suis occupé avec une fonction qui se contente de dire si oui ou non le caractere demandé est prsésent dans la cahine, et il y a un défault que je n'arrive pas a éliminer.
bon tout d'abord,cette fonction marcahit très bien, tant que je définnissait d'avance le caractere rechercher.
j'ai donc voulu faire mieu, en proposant a l'utilisateur de choisir le caractere a rechercher.
j'ai donc écrit cette fonction :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char search(char *chaine,char caractereARechercher);
int main()
{ char chaine[]="boite",caractereARechercher={0},nbref=0;
printf("entrez une lettre,l'ordinateur va la chercher dans le mot boite,et vous dire si il l'a trouvee");
scanf("%c", &caractereARechercher);
nbref=search(chaine, caractereARechercher);
if (nbref==1)
printf("%c est present dans chaine", caractereARechercher);
else
printf("%c n'est pas dans chaine", caractereARechercher);
system("PAUSE");
return 0;
}
char search(char *chaine,char caractereARechercher)
{long i;
for(i=0;chaine[i]!=caractereARechercher;i++);
{
if (chaine[i]==caractereARechercher)
return 1;
else
return 0;
}
}
lorsque que le caractere est présent, elle marche très bien
par contre lorsque le caractere n'est pas présent, on me dit "ce programme va etre arreter parce que ...." .
je n'arrive pas a comprendre pourquoi ça marche lorsque le caractere est dans la cahine, et que ça marche pas quand il ne l'est pas
. merci de m'aider encore
Re !
quand il a finit de parcourir la chaine et quil la pas trouvé, il retourne 0.
Toi tu testais seulement le 1er caractere de la chaine.
# long search(char *chaine,char caractereARechercher)
# {long i;
# for(i=0;chaine!=caractereARechercher;i++);
# {
# if (chaine==caractereARechercher)
# return 1;
# }
# return 0;
# }
[edit] search renvoi un long, pas un char, donc dans le main, declare nbref comme un long (un int suffirait)
quand il a finit de parcourir la chaine et quil la pas trouvé, il retourne 0.
Toi tu testais seulement le 1er caractere de la chaine.
# long search(char *chaine,char caractereARechercher)
# {long i;
# for(i=0;chaine!=caractereARechercher;i++);
# {
# if (chaine==caractereARechercher)
# return 1;
# }
# return 0;
# }
[edit] search renvoi un long, pas un char, donc dans le main, declare nbref comme un long (un int suffirait)
merci de m'aider,mais ça ne marche toujours pas.
j'ai fait ce que tu m'as dit (bien que je ne comprend pas pourquoi ma fonction renverrai un long...).
le résultat ?
2 problèmes : lorsque je tape "l" par exemple, la fonction renvoit 1 alors qu'il n'y a pas de "l" dans le mot boite.
2ème problème, avec certaine lettres,comme "z", le programme me dit carément que j'ai fait quelquechose de non conforme !!!!
je ne comprend pas !!!
voiçi le code, écoute dis moi tout ce qui va pas moi j'y comprend plus rien.
quoi qu'il en soit voila le code,et merci de m'aider encore ...
plus généralment je ne comprend pas.
ça fait 3 semaine maintenant que j'apprend le C, et je n'ai jamais bloqué plus d'une soirée sur quelquechose,ce qui fait que le plaisir etait sans cesse renouvelé.
la par contre, je galère et je suis meme obligé de faire appel a un forum,chose que je n'avais jamais faite avant. galérer comme ça ne me procure aucun plaisir, ça me gonfle qu'aucuns de mes programmes ne marche
est ce que c'est normal d'avoir autant de difficultées ???
toi tu m'air l'air vachement balaise
a l'époque ou tu avais mon niveau (oula c'était loin ^^) tu as eu du mal avec les chaines de caractere ?
j'ai fait ce que tu m'as dit (bien que je ne comprend pas pourquoi ma fonction renverrai un long...).
le résultat ?
2 problèmes : lorsque je tape "l" par exemple, la fonction renvoit 1 alors qu'il n'y a pas de "l" dans le mot boite.
2ème problème, avec certaine lettres,comme "z", le programme me dit carément que j'ai fait quelquechose de non conforme !!!!
je ne comprend pas !!!
voiçi le code, écoute dis moi tout ce qui va pas moi j'y comprend plus rien.
quoi qu'il en soit voila le code,et merci de m'aider encore ...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char search(char *chaine,char caractereARechercher);
int main()
{ char chaine[]="boite",caractereARechercher={0};
long nbref=0;
printf("entrez une lettre,l'ordinateur va la chercher dans le mot boite,et vous dire si il l'a trouvee");
scanf("%c", &caractereARechercher);
nbref=search(chaine, caractereARechercher);
printf("%ld", nbref);
if (nbref==1)
printf("%c est present dans chaine", caractereARechercher);
else
printf("%c n'est pas dans chaine", caractereARechercher);
system("PAUSE");
return 0;
}
char search(char *chaine,char caractereARechercher)
{long i;
for(i=0;chaine[i]!=caractereARechercher;i++);
{
if (chaine[i]==caractereARechercher)
return 1;
}
return 0;
}
plus généralment je ne comprend pas.
ça fait 3 semaine maintenant que j'apprend le C, et je n'ai jamais bloqué plus d'une soirée sur quelquechose,ce qui fait que le plaisir etait sans cesse renouvelé.
la par contre, je galère et je suis meme obligé de faire appel a un forum,chose que je n'avais jamais faite avant. galérer comme ça ne me procure aucun plaisir, ça me gonfle qu'aucuns de mes programmes ne marche
est ce que c'est normal d'avoir autant de difficultées ???
toi tu m'air l'air vachement balaise
a l'époque ou tu avais mon niveau (oula c'était loin ^^) tu as eu du mal avec les chaines de caractere ?
Re !
alalala toujours bloqué ^^
tu demandes pourquoi search doit renvoyer un long, en fait deja un int suffirait.
search doit renvoyer si oui ou non, un caractere est present dans la chaine, autrement dis, elle doit renvoyé un booleeen.
Comme tu as pu le voir, les booleens n'existe pas en C, on utilise generalment 1 pour vrai, et 0 pour false.
Voila pourquoi search renvoie 0 ou 1.
1er erreur que je vois dans le code :
char search(char *chaine,char caractereARechercher);
remplace char par long !
Et pour repondre a ta question, l'epoque ou j'avais ton niveau c'etait seulement ya 3 ans, au debut il faut bien apprendre les bases et puis ca passe.
Je vais tester le code sur ma machine et j'editerais.
alalala toujours bloqué ^^
tu demandes pourquoi search doit renvoyer un long, en fait deja un int suffirait.
search doit renvoyer si oui ou non, un caractere est present dans la chaine, autrement dis, elle doit renvoyé un booleeen.
Comme tu as pu le voir, les booleens n'existe pas en C, on utilise generalment 1 pour vrai, et 0 pour false.
Voila pourquoi search renvoie 0 ou 1.
1er erreur que je vois dans le code :
char search(char *chaine,char caractereARechercher);
remplace char par long !
Et pour repondre a ta question, l'epoque ou j'avais ton niveau c'etait seulement ya 3 ans, au debut il faut bien apprendre les bases et puis ca passe.
Je vais tester le code sur ma machine et j'editerais.
Hello,
1. Déjà, je vois un truc super énorme.
dans la fonction search :
la boucle s'arrête dès qu'elle tombe sur "caractereARechercher".
S'il n'est pas présent ??
Et ben ça segfault (tu pètes la mémoire).
2. ta fonction search test seulement si le caratere est présent. Elle devrait plutot s'appeler : isPresent. renvoit 1 si présent, 0 sinon.
3. la bonne condition d'arrêt de ta boucle serait plutôt : fin de chaîne, qui se traduit par le caractère '\0' (backslash zéro).
pour moi, ca devrait donner un truc du genre :
1. Déjà, je vois un truc super énorme.
dans la fonction search :
la boucle s'arrête dès qu'elle tombe sur "caractereARechercher".
S'il n'est pas présent ??
Et ben ça segfault (tu pètes la mémoire).
2. ta fonction search test seulement si le caratere est présent. Elle devrait plutot s'appeler : isPresent. renvoit 1 si présent, 0 sinon.
3. la bonne condition d'arrêt de ta boucle serait plutôt : fin de chaîne, qui se traduit par le caractère '\0' (backslash zéro).
pour moi, ca devrait donner un truc du genre :
for (i = 0; chaine[i] != '\0'; i++)
if (chaine[i] == caractereARechercher)
return 1;
return 0;
Citation :
Re !alalala toujours bloqué ^^
tu demandes pourquoi search doit renvoyer un long, en fait deja un int suffirait.
search doit renvoyer si oui ou non, un caractere est present dans la chaine, autrement dis, elle doit renvoyé un booleeen.
Comme tu as pu le voir, les booleens n'existe pas en C, on utilise generalment 1 pour vrai, et 0 pour false.
Voila pourquoi search renvoie 0 ou 1.
1er erreur que je vois dans le code :
char search(char *chaine,char caractereARechercher);
remplace char par long !
Et pour repondre a ta question, l'epoque ou j'avais ton niveau c'etait seulement ya 3 ans, au debut il faut bien apprendre les bases et puis ca passe.
Je vais tester le code sur ma machine et j'editerais.
Heu, un char ça suffit.
A la rigueur un int. mais un long, pour stocker 0 ou 1, c'est un peu mettre une mouche dans un 600m².
Voila celui la marche
Il y avait plusieurs erreurs,
for(i=0;chaine!=caractereARechercher;i++);
2 erreurs,
chaine!=caractereARechercher -->\0, ok ca c'est ma faute
l'autre c'est le ;.
Pense a mettre des \n c'est plus jolie a l'affichage, et mettre des commentaires, ca t'aide a comprendre ce que tu fais.
@vinz42 mettre 1 ou 0 dans un int, c'est plus naturel pour commencer.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int search(char *chaine,char caractereARechercher);
int main()
{
char chaine[]="boite";
char caractereARechercher;
int nbref=0;
printf("entrez une lettre,l'ordinateur va la chercher dans le mot boite,et vous dire si il l'a trouvee : \n" );
scanf("%c", &caractereARechercher);
nbref=search(chaine, caractereARechercher);
printf("\t %d ", nbref);
if (nbref==1) printf("%c est present dans chaine\n", caractereARechercher);
else printf("%c n'est pas dans chaine\n", caractereARechercher);
return 0;
}
int search(char *chaine,char caractereARechercher)
{
int i;
for(i=0;chaine[i]!='\0';i++)
{
if (chaine[i]==caractereARechercher)
return 1;
}
return 0;
}
Il y avait plusieurs erreurs,
for(i=0;chaine!=caractereARechercher;i++);
2 erreurs,
chaine!=caractereARechercher -->\0, ok ca c'est ma faute
l'autre c'est le ;.
Pense a mettre des \n c'est plus jolie a l'affichage, et mettre des commentaires, ca t'aide a comprendre ce que tu fais.
@vinz42 mettre 1 ou 0 dans un int, c'est plus naturel pour commencer.
Citation :
@vinz42 mettre 1 ou 0 dans un int, c'est plus naturel pour commencer.Son but, c'est d'apprendre le C pour faire du SDL et de l'OpenGL.
S'il obstrue le coté optimisation dès le début, ça va prendre du temps.
Et c'est juste une bonne pratique.
pour info :
taille en mémoire :
char < int < long
pour connaitre les vrais tailles des types :
printf(sizeof(char));
ok merci les gars de votre aide et de vos réponses ça fait plaisir
par contrre au niveau char, int, long je vais rester simple si vous permettez . pour moi,
char=[-127,+128]< int [ -2 147 483 648,2 147 483 648]= long < float < double .
on peut également assigné plus de valeurs en mettant unsigned devant, ce qui double le nombre de valeur positive mais empèche de mettre des négative.
z'avez vu les gars je connais ma leçon
nan fin voila j'en reste la moi si vous voulez bien
je revient vous embeter si je rebloque sérieusement (bien entendu ce sera sur une autre fonction, celle la je pense que je ne peut plus me planter
)
merci encore
par contrre au niveau char, int, long je vais rester simple si vous permettez . pour moi,
char=[-127,+128]< int [ -2 147 483 648,2 147 483 648]= long < float < double .
on peut également assigné plus de valeurs en mettant unsigned devant, ce qui double le nombre de valeur positive mais empèche de mettre des négative.
z'avez vu les gars je connais ma leçon
nan fin voila j'en reste la moi si vous voulez bien
je revient vous embeter si je rebloque sérieusement (bien entendu ce sera sur une autre fonction, celle la je pense que je ne peut plus me planter
)merci encore
Citation :
on peut également assigné plus de valeurs en mettant unsigned devantNon, il y en a autant, c'est juste que ce ne sont pas les mêmes, pour la raison que tu as donnée
Citation :
char=[-127,+128]< int [ -2 147 483 648,2 147 483 648]= long < float < doubleEn pratique, ça n'a pas d'intérêt de comparer des entiers et des flottants pour la taille (puisque ceux-ci ont des codages particuliers), mais c'est exact.
Désolé, j'ai toujours pas trouvé la mouche.
re
désolé je revient vous embeter, avec la meme fonction en plus ^^
ça ne marche toujours pas, pourtant j'ai fait exactement ce que tu m'as dit.
la fonction renvoit que des 0, meme si le caractere en question est bien compris dans boite.
je crois avoir compris pourquoi, c'est une première victoire ^^
en fait, imaginons que je prend "o" . ma boucle se lance:
chaine[0]=b!=(caractereARechercher qui = o)
chaine[1]=o=caractereARechercher
le problème,c'est que la boucle continu ensuite !!!
chaine[2]=i!=caractereARechercher
et etc, resultat a la fin de la boucle, la condition n'est pas remplie, et la fonction renvoit zero ce qui est logique.
cela, je l'avais compris avant de m'embrouiller .
c'est la raison pour laquelle j'avais mis for (i=0;chaine!=caractereARechercher;i++); .
le problème, comme l'a signalé un sympathique IDnaute, c'est que tant que le caractere a rechercher est présent ça marche youpi !
par contre quand il n'est plus présent ben l'OS coupe le programme parce cela fait une manip non conforme.
maintenant que j'ai compris le problème, je ne suis pas plus avancé ^^
parce que je ne vois pas comment arreter la boucle au bon moment,sans qu'elle plante si elle a une instruction fausse.
vous auriez une idée ?
merci encore
désolé je revient vous embeter, avec la meme fonction en plus ^^
ça ne marche toujours pas, pourtant j'ai fait exactement ce que tu m'as dit.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int search(char *chaine,char caractereARechercher);
int main()
{ char chaine[12]="boite",caractereARechercher;
int nbref=0;
printf("entrez une lettre,l'ordinateur va la chercher dans le mot boite,et vous dire si il l'a trouvee");
scanf("%c", &caractereARechercher);
nbref=search(chaine, caractereARechercher);
printf("%ld", nbref);
if (nbref==1)
printf("%c est present dans chaine", caractereARechercher);
else
printf("%c n'est pas dans chaine", caractereARechercher);
system("PAUSE");
return 0;
}
int search(char *chaine,char caractereARechercher)
{long i;
for(i=0;chaine[i]!='0';i++);
{
if (chaine[i]==caractereARechercher)
return 1;
}
return 0;
}
la fonction renvoit que des 0, meme si le caractere en question est bien compris dans boite.
je crois avoir compris pourquoi, c'est une première victoire ^^
en fait, imaginons que je prend "o" . ma boucle se lance:
chaine[0]=b!=(caractereARechercher qui = o)
chaine[1]=o=caractereARechercher
le problème,c'est que la boucle continu ensuite !!!
chaine[2]=i!=caractereARechercher
et etc, resultat a la fin de la boucle, la condition n'est pas remplie, et la fonction renvoit zero ce qui est logique.
cela, je l'avais compris avant de m'embrouiller .
c'est la raison pour laquelle j'avais mis for (i=0;chaine!=caractereARechercher;i++); .
le problème, comme l'a signalé un sympathique IDnaute, c'est que tant que le caractere a rechercher est présent ça marche youpi !
par contre quand il n'est plus présent ben l'OS coupe le programme parce cela fait une manip non conforme.
maintenant que j'ai compris le problème, je ne suis pas plus avancé ^^
parce que je ne vois pas comment arreter la boucle au bon moment,sans qu'elle plante si elle a une instruction fausse.
vous auriez une idée ?
merci encore
regarde bien le dernier le dernier code que j'ai posté ...
ta vu l'erreur ?
la boucle for ....
et oui, un point virgule de trop !!!!!!
voila ça marche maintenant les gars merci
je revient poster dès que j'ai transféré ma fonction sur clé (car je programme sur un autre PC) .
j'ai tenté une fonction de fous et ben sur ça marche pas ^^
ta vu l'erreur ?
la boucle for ....
et oui, un point virgule de trop !!!!!!
voila ça marche maintenant les gars merci
je revient poster dès que j'ai transféré ma fonction sur clé (car je programme sur un autre PC) .
j'ai tenté une fonction de fous et ben sur ça marche pas ^^
lol nan en fait ce qui a fait que que j'ai pas tout de suite pigé, c'est que je pensais que tu disait boulet pour le "\" manquant .
et tu m'as dit que ce code marchait,alors que dans l'exemple il y avait un ; après le for .
donc moi j'ai pensait que c'était bon ^^
mais bon mnt j'ai compris c'est bon.
merci vinz
et tu m'as dit que ce code marchait,alors que dans l'exemple il y avait un ; après le for .
donc moi j'ai pensait que c'était bon ^^
mais bon mnt j'ai compris c'est bon.
merci vinz
voila du gros dossier ^^
j'essait donc actuellement de faire une fonction qui copie la strchr string.h, que vous connaissez surement.
mais voila, comme d'hab,ça marche pas.
notez que je m'y serez attendu, mais la j'avoue que je sais plus trop par ou prendre le problème...
vous pouvez jetez un coup d'oeil au code ?
le but du programme est simple.
on envoit a une fonction une chaine et un caractere.
cette fonction,a l'aide d'un pointeur va renvoyez l'adresse du caractere que l'on reçoit.
grace a cette adresse,on affiche la fin de la chaine...
je vous remerçie d'avance
je suis au courant de la pauvretée de ce code,soyez une fois de plus indulgent ^^
j'essait donc actuellement de faire une fonction qui copie la strchr string.h, que vous connaissez surement.
mais voila, comme d'hab,ça marche pas.
notez que je m'y serez attendu, mais la j'avoue que je sais plus trop par ou prendre le problème...
vous pouvez jetez un coup d'oeil au code ?
#include <stdio.h>
#include <stdlib.h>
char search(char *chaine, char caractereARechercher);
int main()
{
char chaine[]="texte de test", *suiteChaine="NULL",caractereARechercher='d';
suiteChaine=search(chaine, caractereARechercher);
printf("%s", suiteChaine);
if (suiteChaine!="NULL")
{
printf("voici la fin de la chaine a partir du 1er d: %s\n", suiteChaine);
}
system("PAUSE");
return 0;
}
char search(char *chaine,char caractereARechercher)
{
char *suiteChaine="NULL";
"suiteChaine"=&chaine[7];// on détermine l'adresse du caractere que l'on recherche
return suiteChaine;
}
le but du programme est simple.
on envoit a une fonction une chaine et un caractere.
cette fonction,a l'aide d'un pointeur va renvoyez l'adresse du caractere que l'on reçoit.
grace a cette adresse,on affiche la fin de la chaine...
je vous remerçie d'avance
je suis au courant de la pauvretée de ce code,soyez une fois de plus indulgent ^^
Re,
- déjà search renvoie un pointeur et pas un char
- pourquoi tu mets "suiteChaine" ? suiteChaine est une variable.
-j'ai corrigé quelques petites fautes encore
[edit] rajoute le system("PAUSE" );
- déjà search renvoie un pointeur et pas un char
- pourquoi tu mets "suiteChaine" ? suiteChaine est une variable.
-j'ai corrigé quelques petites fautes encore
#include <stdio.h>
#include <stdlib.h>
char* search(char *chaine, char caractereARechercher);
int main()
{
char chaine[]="texte de test", *suiteChaine="NULL",caractereARechercher='d';
suiteChaine=search(chaine, caractereARechercher);
if (suiteChaine!="NULL" )
{
printf("voici la fin de la chaine a partir du 1er d: %s\n", suiteChaine);
}
return 0;
}
char* search(char *chaine,char caractereARechercher)
{
char *suiteChaine="NULL";
suiteChaine=chaine+6;// on détermine l'adresse du caractere que l'on recherche
return suiteChaine;
}
[edit] rajoute le system("PAUSE" );
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :