stringconversion.h
Go to the documentation of this file.
1 /****
2  * Sming Framework Project - Open Source framework for high efficiency native ESP8266 development.
3  * Created 2015 by Skurydin Alexey
4  * http://github.com/SmingHub/Sming
5  * All files of the Sming Core are provided under the LGPL v3 license.
6  *
7  * StringConversion.h
8  *
9  * Created on: 28 ���. 2015 �.
10  * Author: Anakonda
11  *
12  ****/
13 
14 #pragma once
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 /*
21  * Since C does not support default func parameters, we define inline versions which
22  * translate to ltoa_wp, ultoa_wp, lltoa_wp and ulltoa_wp functions.
23  */
24 
25 extern char* ltoa_wp(long val, char* buffer, int base, int width, char pad);
26 
27 static inline char* ltoa_w(long val, char* buffer, int base, int width)
28 {
29  return ltoa_wp(val, buffer, base, width, ' ');
30 }
31 
32 static inline char* ltoa (long val, char* buffer, int base)
33 {
34  return ltoa_wp(val, buffer, base, 0, ' ');
35 }
36 
37 #ifndef ARCH_ESP32
38 static inline char* itoa (int val, char* buffer, int base)
39 {
40  return ltoa_wp(val, buffer, base, 0, ' ');
41 }
42 #endif
43 
44 extern char* ultoa_wp(unsigned long val, char* buffer, unsigned int base, int width, char pad);
45 
46 static inline char* ultoa_w(unsigned long val, char* buffer, unsigned int base, int width)
47 {
48  return ultoa_wp(val, buffer, base, width, ' ');
49 }
50 
51 static inline char* ultoa(unsigned long val, char* buffer, unsigned int base)
52 {
53  return ultoa_wp(val, buffer, base, 0, ' ');
54 }
55 
56 extern char* lltoa_wp(long long val, char* buffer, int base, int width, char pad);
57 
58 static inline char* lltoa_w(long long val, char* buffer, int base, int width)
59 {
60  return lltoa_wp(val, buffer, base, width, ' ');
61 }
62 
63 static inline char* lltoa(long long val, char* buffer, int base)
64 {
65  return lltoa_wp(val, buffer, base, 0, ' ');
66 }
67 
68 
69 extern char* ulltoa_wp(unsigned long long val, char* buffer, unsigned int base, int width, char pad);
70 
71 static inline char* ulltoa_w(unsigned long long val, char* buffer, unsigned int base, int width)
72 {
73  return ulltoa_wp(val, buffer, base, width, ' ');
74 }
75 
76 static inline char* ulltoa(unsigned long long val, char* buffer, unsigned int base)
77 {
78  return ulltoa_wp(val, buffer, base, 0, ' ');
79 }
80 
81 
82 extern char* itoa(int, char*, int);
83 
84 extern char *dtostrf_p(double floatVar, int minStringWidthIncDecimalPoint, int numDigitsAfterDecimal, char *outputBuffer, char pad);
85 
86 static inline char *dtostrf(double floatVar, int minStringWidthIncDecimalPoint, int numDigitsAfterDecimal, char *outputBuffer)
87 {
88  return dtostrf_p(floatVar, minStringWidthIncDecimalPoint, numDigitsAfterDecimal, outputBuffer, ' ');
89 }
90 
91 long atol(const char *nptr);
92 extern long os_strtol(const char* str, char** endptr, int base);
93 extern double os_strtod(const char* str, char** endptr);
94 double os_atof(const char* s);
95 
96 #ifdef __cplusplus
97 }
98 #endif
static char * ltoa(long val, char *buffer, int base)
Definition: stringconversion.h:32
static char * dtostrf(double floatVar, int minStringWidthIncDecimalPoint, int numDigitsAfterDecimal, char *outputBuffer)
Definition: stringconversion.h:86
long atol(const char *nptr)
static char * lltoa_w(long long val, char *buffer, int base, int width)
Definition: stringconversion.h:58
char * ltoa_wp(long val, char *buffer, int base, int width, char pad)
long os_strtol(const char *str, char **endptr, int base)
static char * itoa(int val, char *buffer, int base)
Definition: stringconversion.h:38
char * ultoa_wp(unsigned long val, char *buffer, unsigned int base, int width, char pad)
static char * ultoa_w(unsigned long val, char *buffer, unsigned int base, int width)
Definition: stringconversion.h:46
char * ulltoa_wp(unsigned long long val, char *buffer, unsigned int base, int width, char pad)
static char * ultoa(unsigned long val, char *buffer, unsigned int base)
Definition: stringconversion.h:51
static char * ltoa_w(long val, char *buffer, int base, int width)
Definition: stringconversion.h:27
double os_strtod(const char *str, char **endptr)
char * lltoa_wp(long long val, char *buffer, int base, int width, char pad)
double os_atof(const char *s)
static char * ulltoa(unsigned long long val, char *buffer, unsigned int base)
Definition: stringconversion.h:76
static char * lltoa(long long val, char *buffer, int base)
Definition: stringconversion.h:63
char * dtostrf_p(double floatVar, int minStringWidthIncDecimalPoint, int numDigitsAfterDecimal, char *outputBuffer, char pad)
static char * ulltoa_w(unsigned long long val, char *buffer, unsigned int base, int width)
Definition: stringconversion.h:71
#define str(s)
Definition: testrunner.h:124