Convertir
shad
-
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je n'ai pas encore etudier le language c++ et je voudrais traduire cette fonction en c aidez moi svp string code(string texte, int decalage) {
const size_t taille = texte.size();
string chaine(texte);
for (size_t i = 0; i < taille; i++)
chaine[i] = code(chaine[i], decalage);
return chaine;
je n'ai pas encore etudier le language c++ et je voudrais traduire cette fonction en c aidez moi svp string code(string texte, int decalage) {
const size_t taille = texte.size();
string chaine(texte);
for (size_t i = 0; i < taille; i++)
chaine[i] = code(chaine[i], decalage);
return chaine;
1 réponse
-
Et sinon, tu connais le C ?
Grosso modo, il suffit de remplacer les string par des tableaux de char. Avec ça, tu devrais pouvoir convertir.
N'hésite pas à montrer ta proposition pour qu'on puisse te dire si c'est bon ou pas.
-
hmm effectivement ms je veux passer par des pointeurs pour avoir une allocation dynamique vu que je vais travailler sur des textes plus au moins long ==> taille depend du choix de la pharse de l'utilisateur , le problème c'est que je veux passer des valeurs par adresse pour éviter la recopie j'y arrive pas
-
-
Pour créer un pointeur :
char *chaine;
Pour allouer l'espace mémoire :chaine=malloc((taille+1)); if(chaine==NULL) { fputs("erreur d'allocation\n", stderr); return EXIT_FAILURE; }
Saisie utilisateur :if (fgets(chaine, sizeof chaine, stdin) != NULL) { char *p=strchar(chaine, '\n'); if (p != NULL) *p='\0'; else viderBuffer(); }
Note : il faudra faire la fonction videBuffer() : une simple boucle while de lecture sur le buffer clavier (stdin) jusqu'à obtention d'un EOF ou '\n' permettra de le vider.
Désallocation de l'espace mémoire :free(chaine), chaine=NULL;
Cdlt,
-