remplacer en C - C++ - Programmation
Marsh Posté le 26-08-2002 à 15:52:00
dans la librairie de base, j'pense pas qu'elle existe, réécris là. C pas bien compliqué !
Marsh Posté le 26-08-2002 à 15:52:09
Je pense pas, mais ça se fait vite:
Code :
|
Marsh Posté le 26-08-2002 à 15:58:15
Ok merci
Je suis pas super bon en dev et je pige pas tout
Le remplacement se fait où ? à [cpp]*c=c2[fixed] ??
je suis trop mauvais.. je m'en vais.
Marsh Posté le 26-08-2002 à 15:59:29
black_lord a écrit a écrit : Ok merci Je suis pas super bon en dev et je pige pas tout Le remplacement se fait où ? à [cpp]*c=c2[fixed] ?? je suis trop mauvais.. je m'en vais. |
c bien ça
Marsh Posté le 26-08-2002 à 16:01:23
letoII a écrit a écrit : c bien ça |
tu lui confirmes donc qu'il est mauvais ?
Marsh Posté le 26-08-2002 à 16:03:37
il n'y a rien d'explicite pour dire que c2 remplace c1 ?
C'est parce que *c est un pointeur ?
Si c'est ça je me coucherai moins bête
Merci à vous
Marsh Posté le 26-08-2002 à 16:06:32
Harkonnen a écrit a écrit : tu lui confirmes donc qu'il est mauvais ? |
Marsh Posté le 26-08-2002 à 16:07:18
black_lord a écrit a écrit : il n'y a rien d'explicite pour dire que c2 remplace c1 ? C'est parce que *c est un pointeur ? Si c'est ça je me coucherai moins bête Merci à vous |
En fait ça marche pas
Marsh Posté le 26-08-2002 à 16:08:44
black_lord a écrit a écrit : il n'y a rien d'explicite pour dire que c2 remplace c1 ? C'est parce que *c est un pointeur ? Si c'est ça je me coucherai moins bête Merci à vous |
Bah, si, le = c'est l'affectation en C, tu sais ça qd même !?
comme pour un entier.
*c n'est pas un pointeur, *c c'est le carractère. c est un pointeur vers *c
Marsh Posté le 26-08-2002 à 16:09:10
letoII a écrit a écrit : En fait ça marche pas |
comment ça ça marche pas !??
Marsh Posté le 26-08-2002 à 16:09:19
Code :
|
C mieu là
En fait je recherche chaque occurence de c1 dans string (strchr)et je les remplace par c2 (*c = c2).
c est un pointeur vers le caractère trouvé par strchr.
Marsh Posté le 26-08-2002 à 16:10:16
El_Gringo a écrit a écrit : comment ça ça marche pas !?? |
En fait si, mais c optimisable.
Ouai bon ok je suis un peu dans le paté aujourd'hui.
Marsh Posté le 26-08-2002 à 16:12:59
letoII a écrit a écrit : En fait si, mais c optimisable. Ouai bon ok je suis un peu dans le paté aujourd'hui. |
Moi j'préférais ta 1ère version.
+ claire. + rapide aussi (1 affectation et une addition en + ds la 2e) ! En quoi tu la trouve + optimisée ta 2e version ?
Marsh Posté le 26-08-2002 à 16:13:16
J'ai pas de compilo sous la main, ça marche ça ?:
Code :
|
Edit : inversion dans l'ordre de ?:
Marsh Posté le 26-08-2002 à 16:15:17
kadreg a écrit a écrit : J'ai pas de compilo sous la main, ça marche ça ?:
|
Je sais pas. c pas beau en tt cas !
Marsh Posté le 26-08-2002 à 16:15:57
El_Gringo a écrit a écrit : Moi j'préférais ta 1ère version. + claire. + rapide aussi (1 affectation et une addition en + ds la 2e) ! En quoi tu la trouve + optimisée ta 2e version ? |
Ben ça évite de se retaper tout le début de la chaine à chaque fois, tu repart du caractère que tu vient de changer en gros. Si la chaine est longue tu y gagne à mon avis (surtout si t'as que quelque caractères à changer dedans).
Marsh Posté le 26-08-2002 à 16:16:22
El_Gringo a écrit a écrit : Je sais pas. c pas beau en tt cas ! |
+1 c archi moche
Marsh Posté le 26-08-2002 à 16:16:26
je comprends pas le
Code :
|
pour remplacer les espaces par des underscores je fais donc
Code :
|
?
Marsh Posté le 26-08-2002 à 16:17:14
kadreg a écrit a écrit : J'ai pas de compilo sous la main, ça marche ça ?:
|
t'es un malade toi !!!
Marsh Posté le 26-08-2002 à 16:17:55
El_Gringo a écrit a écrit : Je sais pas. c pas beau en tt cas ! |
T'aimes pas les opérateurs ternaires, ou c'est les boucles dans lesquelles la condition d'arret est "implicite" ?
Marsh Posté le 26-08-2002 à 16:17:56
black_lord a écrit a écrit : pour remplacer les espaces par des underscores je fais donc
? |
voilà
black_lord a écrit a écrit : je comprends pas le
|
C simple je me place sur le caractère qui suit celui que j'ai remplacé, ça m'évite de reparcourir toute la chaîne depuis le début pour trouver le suivant.
Marsh Posté le 26-08-2002 à 16:19:13
lorill a écrit a écrit : T'aimes pas les opérateurs ternaires, ou c'est les boucles dans lesquelles la condition d'arret est "implicite" ? |
Moi non, c'est deux choses que je m'interdit d'utiliser tellement ça rend le code pénible à lire.
Marsh Posté le 26-08-2002 à 16:19:29
letoII a écrit a écrit : Ben ça évite de se retaper tout le début de la chaine à chaque fois, tu repart du caractère que tu vient de changer en gros. Si la chaine est longue tu y gagne à mon avis (surtout si t'as que quelque caractères à changer dedans). |
Ha ouais, j'y avait pas pensé tient...
Marsh Posté le 26-08-2002 à 16:20:54
kadreg a écrit a écrit : J'ai pas de compilo sous la main, ça marche ça ?:
|
Me semble plus correcte, et puis c assez moche quand même
Marsh Posté le 26-08-2002 à 16:21:04
kadreg a écrit a écrit : Moi non, c'est deux choses que je m'interdit d'utiliser tellement ça rend le code pénible à lire. |
Mais !??? tu dis ça ? après ce que tu viens de ns poster !?
J'comprend lpus là !!
Marsh Posté le 26-08-2002 à 16:23:39
lorill a écrit a écrit : T'aimes pas les opérateurs ternaires, ou c'est les boucles dans lesquelles la condition d'arret est "implicite" ? |
les opérateurs ternaire g rien contre, c obligé desfois (y a pas QUE "?:" comme opérateur ternaire.
Quand à celui là, il me parait un peu obsolète. il date du temps ou on cherchait avant tout à faire du code compacte.
Moi j'aime bien quand, dans un code, chaque ligne correspon à une opération simple...
Marsh Posté le 26-08-2002 à 16:24:06
kadreg a écrit a écrit : Moi non, c'est deux choses que je m'interdit d'utiliser tellement ça rend le code pénible à lire. |
Pour les boucles je suis d'accord, par contre l'opérateur ternaire c'est bien(tm) quand c'est utilisé avec parcimonie...
Exemple :
Code :
|
Marsh Posté le 26-08-2002 à 16:24:41
El_Gringo a écrit a écrit : y a pas QUE "?:" comme opérateur ternaire. |
Il y a quoi d'autre ? Il m'a toujours semblé que c'était le seul.
Marsh Posté le 26-08-2002 à 16:25:16
El_Gringo a écrit a écrit : y a pas QUE "?:" comme opérateur ternaire. |
C'est lesquels les autres ?
Note: ceci n'est pas un sarcasme, je cherche réellement a me renseigner
Edit: grillé
Marsh Posté le 26-08-2002 à 16:26:14
Arghh c'ets bizarre mais remplacer la chaine ne résoud pas le problème..
Je fais un :
Code :
|
mais ca ne va pas... il prend l'espace et saute le scanf() suivant. Je comprends pas : je pensais que ça venait de l'espace.
Marsh Posté le 26-08-2002 à 16:29:23
Rhhooooo, c'est le scanf qui fait pas ce que tu attends. "%s" va prendre la chaine jusqu'au premier espace. Tu tape "toto tata", dans ta chaine tu auras "toto".
Regarde plutot du coté de getline.
Marsh Posté le 26-08-2002 à 16:30:59
tu veux voir le code plus en entier ?
Code :
|
Si je mets un espace dans la chaine pour le sous reseau alors il affiche Adresse IP mais sans rien me demander il demande Adresse MAC. Après verif entree.ip contient la partie après l'espace.
Marsh Posté le 26-08-2002 à 16:31:36
D'accord
scanf() c'est ce qu'on m'avait appris en cours...
Marsh Posté le 26-08-2002 à 16:32:55
black_lord a écrit a écrit : D'accord scanf() c'est ce qu'on m'avait appris en cours... |
Normal, on se fait tous avoir au moin une fois
Marsh Posté le 26-08-2002 à 16:35:25
fgets & getline c'est pour les fichiers non ? Le man me dit ça en tout cas
Code :
|
Moi j'ai une entrée clavier...
Marsh Posté le 26-08-2002 à 15:49:39
Je n'arrive pas à trouver de fonction permettant de remplacer un caractère par un autre en C. J'ai parcouru le string.h et relu des bouquins. Rien. Recherche sur le forum : rien...
La fonction existe-t-elle ou est ce que je dois la réécrire ?
merci.