diff options
Diffstat (limited to '')
| -rw-r--r-- | src/stringrep.cpp | 19 | ||||
| -rw-r--r-- | src/stringrep.h | 17 |
2 files changed, 36 insertions, 0 deletions
diff --git a/src/stringrep.cpp b/src/stringrep.cpp new file mode 100644 index 0000000..a505f8a --- /dev/null +++ b/src/stringrep.cpp | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | #include "stringrep.h" | ||
| 2 | |||
| 3 | int32_t stringlen( const char *s ) | ||
| 4 | { | ||
| 5 | for( int32_t i = 0;; i++ ) | ||
| 6 | if( !s[i] ) | ||
| 7 | return i; | ||
| 8 | } | ||
| 9 | |||
| 10 | char *stringdup( const char *s ) | ||
| 11 | { | ||
| 12 | int len = stringlen( s ); | ||
| 13 | char *r = new char[len+1]; | ||
| 14 | for( int j = 0; j <= len; j++ ) | ||
| 15 | r[j] = s[j]; | ||
| 16 | |||
| 17 | return r; | ||
| 18 | } | ||
| 19 | |||
diff --git a/src/stringrep.h b/src/stringrep.h new file mode 100644 index 0000000..eaa4a12 --- /dev/null +++ b/src/stringrep.h | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | #ifndef STRING_REP_H | ||
| 2 | #define STRING_REP_H | ||
| 3 | |||
| 4 | #include <stdint.h> | ||
| 5 | |||
| 6 | /** | ||
| 7 | * Calculates the length of a string. | ||
| 8 | */ | ||
| 9 | int32_t stringlen( const char *s ); | ||
| 10 | |||
| 11 | /** | ||
| 12 | * Identicle to strdup, which isn't available everywhere, but uses c++ memory | ||
| 13 | * facilities. Remember to use delete[] when freeing the returned string. | ||
| 14 | */ | ||
| 15 | char *stringdup( const char *s ); | ||
| 16 | |||
| 17 | #endif | ||
