begin process at 2012 05 28 15:48:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

changer un mot en un autre


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

changer un mot en un autre

lundi 17 septembre 2007 à 23:14:27 | changer un mot en un autre

snpier wolf

bon soire a tous,
j'ais encors une question.
Commant fair pour qu'un mot qui se trouve dans un texte.txt soit remplacé par un autre mot??
exemple :
-----------------------------
Ce chien est fou!
je suis sur que s'ais ton chien.
------------------------------
Ce chat est fou!
je suis sur que s'ais ton chat.

merci d'avence.
a++
lundi 17 septembre 2007 à 23:47:02 | Re : changer un mot en un autre

juju12

S'il a la même taille t'écris par dessus directement sinon il faut sortir tout le fichier dans un buffer remplacer le mot et le remettre dans le fichier.
mardi 18 septembre 2007 à 10:09:25 | Re : changer un mot en un autre

acx01b



salut

sais-tu le faire dans le cas d'une chaine de caractère ?

par exemple saurais tu écrire une fonction
void remplacer (char *phrase, char *ancien_mot, char *nouveau_mot);

char *phrase = strdup("une phrase");
remplacer(phrase,"une", "une tres longue");
printf(phrase); // affiche: une tres longue phrase
mardi 18 septembre 2007 à 12:48:16 | Re : changer un mot en un autre

snpier wolf

bonjour à tous,
justement ma question était peut être pas clair, en fait je veux que dans un texte qui est encors inconut,
tout les chien par exemple sois remplacé par chat .
bien entendus on ne sais pas ou sont écris les mot chien
merci d'avence
a++ 
mardi 18 septembre 2007 à 16:45:40 | Re : changer un mot en un autre

acx01b

oui on est d'accord

mais ma question c'était est-ce que si ce texte est contenue dans une chaine de caractère (un char*) tu saurais écrire la fonction qui effectue ce remplacement ?

mardi 18 septembre 2007 à 16:53:03 | Re : changer un mot en un autre

snpier wolf

lol
C'est la question que je pause. non je ne sais pas le fair.
quelqu'un peux m'aider s.v.p?

mardi 18 septembre 2007 à 17:12:10 | Re : changer un mot en un autre

snpier wolf

j'ais dis quelqu'un peut m'aider
mais j'aurais du dire quelqu'un peut nous aider s.v.p?

mardi 18 septembre 2007 à 19:16:45 | Re : changer un mot en un autre

Neo_Fr

Membre Club
1- tu charge le fichier dans un buffer 2- tu modifie ce que tu veux 3- tu ecrit le buffer En gros ca te donne un truc comme ca: void __stdcall Replace(char *psz, char *szmotif, char *sznew) // de BruNews { int m, n; char *c, *d; m = strlen(szmotif); if(!m) return; c = psz; n = strlen(sznew); if(!n) goto supprime; if(n > m) goto superieur; if(n < m) goto inferieur; if(!strcmp(szmotif, sznew)) return; while(d = strstr(c, szmotif)) { memcpy(d, sznew, n); c = d + n; } return; inferieur: while(d = strstr(c, szmotif)) { memcpy(d, sznew, n); c = d + n; strcpy(c, d + m); } return; superieur: while(d = strstr(c, szmotif)) { memmove(d + n, d + m, strlen(d + m) + 1); memcpy(d, sznew, n); c = d + n; } return; supprime: while(d = strstr(c, szmotif)) { strcpy(d, d + m); c = d; } } int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { HANDLE hFile; DWORD br, bw, FileSize; BYTE* Buffer; hFile = CreateFile("C:\\ton_fichier.txt", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_ALWAYS, 0, 0); FileSize = GetFileSize(hFile, 0); Buffer = (BYTE*) HeapAlloc(GetProcessHeap(), HEAP_NO_SERIALIZE, (FileSize*2)); ReadFile(hFile, Buffer, FileSize, &br, 0); Replace(Buffer, "mot_a_remplacer", "mot_qui_remplace"); SetFilePointer(hFile, 0, 0, FILE_BEGIN); WriteFile(hFile, Buffer, strlen(Buffer), &bw, 0); SetEndOfFile(hFile); CloseHandle(hFile); HeapFree(GetProcessHeap(), HEAP_NO_SERIALIZE, Buffer); return 0; } Neo_Fr
mercredi 19 septembre 2007 à 13:50:39 | Re : changer un mot en un autre

acx01b

salut

la fonction remplacer je l'ai écrite comme ça:




#include <stdio.h>

void remplacer(char *s, char *src, char *dst) {
    char *tmp, *src2, *dst2, *tmptmp;

    tmp = tmptmp = strdup(s);

    suite:
    while(*tmp) {
        src2 = src;
        char *tmp2 = tmp;
        while(*tmp++ == *src2++) {
            if (!*src2) {
                dst2 = dst;
                while(*dst2) {
                   *s++ = *dst2++;
                }
                goto suite;
            }
        }
        while(tmp2 < tmp) *s++ = *tmp2++;
    }
    *s = 0;
    free(tmptmp);
}

int main() {
    char *chaine = "aaaaaaaaaala laaaaa";
    chaine = strdup(chaine);
    chaine = realloc(chaine,512);
    remplacer(chaine, "aaaaa", "e");
    printf("%s\n",chaine);
    return 0;
}

mercredi 19 septembre 2007 à 14:50:10 | Re : changer un mot en un autre

juju12

acx01b :
char chaine[512]="aaaaaaaaalalaaaaaaaa";
c'est pas plus simple que
    char *chaine = "aaaaaaaaaala laaaaa";
    chaine = strdup(chaine);
    chaine = realloc(chaine,512);
??

1 2

Cette discussion est classée dans : mot, changer, fou, ais, chien


Répondre à ce message

Sujets en rapport avec ce message

richedit [ par julienbj ] Je souhaiterais changer la couleur de certains mots contenus dans un richedit. Je sais le faire lorsque je sélectionne le mot, ou lorsque je veux chan Changer les propriétés d'un objet ?? [ par 01Dawi ] SalutJe sais taper un code c++ mais le bleme c que question changement de propriétés, j'étais habitué a vb (ex : Picture1.picture=) ou a c++ builder ( changer Z-order [ par layouniriadh ] bonjour Apperement l ordre d affichage des objets dans visual c++ et fixe. C est a dire que si je superpose partiellement deux objets (boutons , list RichEdit extraction de mots [ par sunchild ] Bonjour à tous,J'ai un problème que je n'arrive pas à résoudre depuis un certain temps. J'ai chargé un fichier texte dans un RichEdit de Borland C++ B list control [ par titouf71 ] j'ai un gros probleme.J'ai fais un programme mfc avec une list control et je voudrais pouvoir changer la couleur du font que d'une ligne ou d'une case Changer les couleurs dans un edit box (MFC application, visual c++) [ par wannalurn ] SalutJ'ai un petit probleme; j'aimerais en effet changer la couleur de mes edit box dans mon dialog box; concretement, ce que je veux c'est que apres Changer la langue ? [ par 0xYg3n3 ] Bonjour, Je disposes actuellment de Visual.Net 2003 en anglais Et j'aurais voulu savoir si il est possible de la passer en version francaise Merci p Changer l'heure de Windows [ par Sload ] Bonjour à tous ! Qq'un sait il comment changer l'heure de windows en C++ ? Merci d'avance Antoine http://www.sloadnet.com saisie d'un mot pour que l'action sur le bouton se fasse [ par romydamour ] salut tout le monde,je travaille sur une APIwin32 sous visual c++;j'ai réalisé une petite boite de dialogue toute bête qui apparaitra lors du lancemen Tri - Chaine - Pointeurs - en c [ par etienn11 ] Bonjour, Je cherche à trier les lignes d'un fichier (80 car et 100 lignes MAX) en C.J'y suis arrivé avec le code ci-dessous, mais maintenant j'aimerai


Nos sponsors


Sondage...

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 : 7,504 sec (3)

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