g4tools  5.4.0
tosu
Go to the documentation of this file.
1 // Copyright (C) 2010, Guy Barrand. All rights reserved.
2 // See the file tools.license for terms.
3 
4 #ifndef tools_tosu
5 #define tools_tosu
6 
7 // have a "sprintf(%u)" without #include.
8 // It is used in platform.
9 
10 namespace tools {
11 
12 inline void toss(const char* a_from,char a_s[],unsigned int& a_l) {
13  char* s = (char*)a_from;
14  a_l = 0;
15  char* pos = a_s;
16  while(*s) {
17  *pos = *s;pos++;
18  a_l++;
19  s++;
20  }
21  *pos = 0;
22 }
23 
24 template <class T> //T must be an unsigned number type.
25 inline void tosu(T a_i,char a_s[],unsigned int& a_l) {
26  //assume a_s is sufficently allocated (32 is ok).
27  a_l = 0;
28  {char* pos = a_s;
29  T i = a_i;
30  while(true) {
31  if(i<=9) {*pos = '0'+char(i);pos++;a_l++;*pos=0;pos++;break;}
32  T r = i % 10;
33  *pos = '0'+char(r);pos++;
34  a_l++;
35  i = i/10;
36  }}
37  //strrev(s);
38  {unsigned int hl = a_l/2;
39  char* beg = a_s;
40  char* end = a_s+a_l-1;
41  for(unsigned int i=0;i<hl;i++) {
42  char c = *end;
43  *end = *beg;
44  *beg = c;
45  beg++;end--;
46  }}
47 }
48 
49 }
50 
51 #endif
tools::toss
void toss(const char *a_from, char a_s[], unsigned int &a_l)
Definition: tosu:12
tools
inlined C code : ///////////////////////////////////
Definition: aida_ntuple:26
tools::tosu
void tosu(T a_i, char a_s[], unsigned int &a_l)
Definition: tosu:25
tools::waxml::end
void end(std::ostream &a_writer)
Definition: begend:31