unsigned char c_STR[10]; unsigned char index_STR=0; unsigned char strcat2_return[50]; unsigned char temp_str[50],temp_str2[50]; unsigned char *fchar(unsigned char c)//25 { if(index_STR!=8) {index_STR+=2;} else {index_STR=0;} c_STR[index_STR]=c; c_STR[index_STR+1]=0; return &c_STR[index_STR]; } unsigned char *strcat2(unsigned char *dest,unsigned char *src) //66 { if(dest==strcat2_return) return strcat(strcat2_return,src); if(src==strcat2_return) { strcpy(temp_str,strcat2_return); strcat2_return[0]=0; strcat(strcat2_return,dest); strcat(strcat2_return,temp_str); return strcat2_return; } else { strcat2_return[0]=0; strcat(strcat2_return,dest); return strcat(strcat2_return,src); } } unsigned char *stringg(long val) //ne garde en mémoire que temporairement le résultat en string (jusqu'au prochain appel de la fonction) { static unsigned char stringg_return[12*4+1]; //les unsigned long ont jusqu'à 10 chiffres ; penser au signe moins si négatif if(!(stringg_return[0]>2)) stringg_return[0]++; else stringg_return[0]=0; sprintf(stringg_return+stringg_return[0]*12+1,"%ld",val); return (stringg_return+stringg_return[0]*12+1); } unsigned char *f_newstr_(unsigned char *strr,unsigned char **vardest) //210 { unsigned char *buff; buff=malloc(strlen(strr)+1); if(!buff) return 0; strcpy(buff,strr); *vardest=buff; return buff; }