Comment modifier une chaîne de caratères en C

Résolu
dekl38 Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je souhaite créer un programe qui va analyser une chaîne de caractères et si il trouve un .c le transforme en .o

Mon problème est que je ne sais pas comment analyser et modifier une chaîne de caractères, pouvez-vous m'aider ?

merci :)

pour le moment je n'ai que ça :

#include <stdio.h>

int main (int argc, char*argv[]){
int i;
int nbarg;
for (i=1;i<argc;i++){



A voir également:

4 réponses

dekl38 Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   12
 
j'ai finalement fait ça :

#include <stdio.h>
#include <string.h>

int main (int argc, char*argv[]){
int i,j;
int length;
char *argx;
for (i=1;i<argc;i++){
argx = argv[i];
length = strlen(argv[i]);
if (length>2){
if (argx[length-1]=='c'&& argx[(length-2)]== '.') {
argx[length-1]='o';
printf("%s ",argx);
}
}
}
printf("\n");
return 0;
}



je penserai à ce forum quand j'aurai un autre probleme, merci :)
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,
Ta solution n'est pas correcte. Tu ne peux pas modifier la chaîne argv[i], si tu le fais tu t'exposes à un segfault.
Il te faut utiliser un tableau dynamique (malloc en utilisant argc et strlen(argv[i])). Tu recopieras avec strcpy. Et enfin, tu pourras utiliser ta boucle sur le tableau.
0
samossaad Messages postés 72 Date d'inscription   Statut Membre Dernière intervention   1
 
son programme fonctionne parfaitement pourtant
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Effectivement, j'ai rien dit :/
0