Alternative à la fonction itoa

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 906 fois - Téléchargée 28 fois

Contenu du snippet

Ce petit code est une alternative à itoa qui à ma connaissance n'est pas présent dans tous les include des compilo

Source / Exemple :


#include <math.h>

#define _itoa(a,b,c) __itoa(a,b,c,32)

int __itoa(int num,char *result,int base,int nbrNum)
{
int j=0;
int i=0;
int k=0;
int l=0;
int temp;
char res[32];
char res2[nbrNum+1];
char cList[]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
if(result==NULL || base>16 || base<2)return -1;
j=num;
i=31;
while(i>=0)
	{
	l=pow(base,i);
	temp=(int)j/l;
	res[k++]=cList[temp];
	j-=temp*l;
	i--;
	}
i=0;
j=31-(nbrNum-1);
for(k=j;k<32;k++)res2[i++]=res[k];

res2[nbrNum]='\0';
printf("res2=%s \n",res2);
memcpy(result,res2,sizeof(res2));
return 0;
}

Conclusion :


Ce code a été testé sous windows Me et seulement avec quelques valeurs .
Il existe deux fonctions : la première dont les param sont : le nombre(int),le pointeur vers une string(char *)et la base(int) .
La deuxièmre fonction qui est en faite la première avec un param de plus et qui est le nombre de caractères à garder dans la string .

ATTENTION : la string renvoyée doit contenir un char de plus que le nombre de char gardé car la fonction ajoute le NULL de la fin de la string

A voir également

Ajouter un commentaire Commentaires
Messages postés
267
Date d'inscription
lundi 22 septembre 2003
Statut
Membre
Dernière intervention
27 novembre 2005

faut pas lire plusieurs sources en meme temps !!!

;-D
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015

Eh mais j'avais posté un message d'excuses qd je m'étais rendu compte de mon erreur...où qu'il est passé ???

Bon bah encore désolé
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

lol, c pas grave garlouche, l'algo de génétique c'est de l'autre côté, on t'en veut pas ;-)
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015

Ca fait qq temps que je n'y ai plus touché mais pour autant que je me souvienne les algo génétiques utilisent davantage de notions normalement. Ici tu n'utilises que les mutations, mais il y avait une histroire de cross-bidule et de je ne sais quoi encore. Il me semble qu'il y a avait 3 types d' <<erreurs>> possibles. De plus je ne vois pas le taux de mutation ds ton prog.
Sinon je trouve ça un peu bizarre que le mutations ne soient pas utilisées pendant la "procréation" (càd dans l'opérateur *)

Sinon j'ai pas pu testé bicoz j'ai pas un linux sous la main mais d'après la capture d'écran ça a l'air assez efficace.

Sinon pour Kirua : la force brute est toujours la + mauvaise solution!!! (sauf pour trouver un mot de passe....). Et même si dans un cas particulier ça marche mieux (par exemple quand il y a peu de villes à traverser) il ne faut pas en tenir compte car la vitesse des algos se calcule généralement dans le cas des très grand ensembles.


Sinon c'est bien codé mais pas assez commenté...8/10
Messages postés
267
Date d'inscription
lundi 22 septembre 2003
Statut
Membre
Dernière intervention
27 novembre 2005

pour info, mon algo fonctionnais nickel et rapidement y'a 10 ans sur un MO6 avec un vieux basic 1.0 donc ca devaris pas poser de pb de perf maintenant ! ;-)
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.