Remplacer des espaces par des underscores (C) - C - Programmation
Marsh Posté le 22-04-2004 à 01:08:56
t'es pas entrain de faire ça parce que par exemple scanf bloque au premier espace alors tu tapes des _ ?
Marsh Posté le 22-04-2004 à 01:40:31
on va gagner un peu de temps
Code :
|
Marsh Posté le 23-04-2004 à 23:20:24
salut et merci pour ton aide
j'ai fait autrement en fait car je n'avais plus acces au net
je ne savais pas que str_replace existait en C !!
merci encore
Marsh Posté le 23-04-2004 à 23:23:24
str_replace n'existe pas en C, c'est moi qui te la file s
Marsh Posté le 24-04-2004 à 12:03:41
plus simple :
Code :
|
Marsh Posté le 24-04-2004 à 12:25:57
christophe_d13 a écrit : plus simple :
|
plus long. autant de parcour de la chaine que de remplacements.
Marsh Posté le 24-04-2004 à 12:38:48
Taz> Tout à fait. Mais quand on ne cherche pas la vitesse à tout prix, mais plus une lisibilité, c'est plus simple.
Allez un code plus rapide juste pour toi.
Code :
|
Marsh Posté le 24-04-2004 à 12:43:04
la t'es passé de O(n²) à o(n²/2)
la version de str_replace que j'ai donné est simple, y a rien a redire je pese ?
Marsh Posté le 24-04-2004 à 12:45:58
Taz> Nos deux routines font la même chose et ont le même nombre d'itération à ceci près :
La tienne - Traîte de façon directe la chaine et est moins lisible pour le débutant.
La mienne - Traîte de façon indirecte avec un appel à une fonction et est plus lisible pour un débutant.
Marsh Posté le 24-04-2004 à 12:54:17
Juste pour le fun
char * str_replace(char * pszText, char cold, char cnew )
{
char * psz = pszText;
for (;*psz; ((*psz)==cold)?(*psz++=cnew)psz++));
}
Marsh Posté le 24-04-2004 à 12:59:23
t'en a pas marre de nou pourir avec ta notation hongroise de merde ?
Marsh Posté le 24-04-2004 à 13:03:17
Taz> C'est devenu une habitude... Non pas de pourrir les posts , mais d'utiliser la notation hongroise. Je sais que peux sont ceux qui l'aiment, l'apprécient ou l'utilisent. Mais je la trouve assez pratique au final. De toute façon, là où je bosse on se la fixé dans nos rêgles de dvlp.
Marsh Posté le 24-04-2004 à 13:06:30
Comme disait Coluche, hongrois qu'on baise, mais on baise pas.
Marsh Posté le 24-04-2004 à 13:10:01
http://mindprod.com/unmain.html
Hungarian Notation
: Hungarian Notation is the tactical nuclear weapon of source code obfuscation techniques; use it! Due to the sheer volume of source code contaminated by this idiom nothing can kill a maintenance engineer faster than a well planned Hungarian Notation attack.
Marsh Posté le 24-04-2004 à 22:05:55
Salut, alors en fait j'ai pas pris vos code mais j'ai essayé par moi même
paceque je voulais rajouter une option
mais ça marche pas
Code :
|
il me sort : conflicting types alors que j'ai rien changé aux declarations
juste rajouté char remplacement qui n'existait pas avant
et ça fonctionnait
Marsh Posté le 24-04-2004 à 22:14:49
le %c pour une chaine ... génial ...
moi dans ton cas, j'utiliserais toujours fgets + des trucs de string.h pour filtrer
parce que toute façon, avec ta pseudo regex tu l'a profond si scanf n'arrive à rien lire
Marsh Posté le 21-04-2004 à 23:42:52
salut
apres une recherche infructueuse sur le forum je me permets de poser cette question
il s'agit d'une chaine de caractere avec des espaces a remplacer par des underscores
j'ai ecris une petite fonction mais qui deglingue un peu tout car elle bouffe les espaces :
je cherche egalement a empecher dans mon prog la saisie de caracteres non voulus en evitant les if partout
style : choix o ou n
eviter autre chose sinon ca plante (car je recupere un car seul)
merci de votre aide !