diff options
| author | Gertjan van den Burg <gertjanvandenburg@gmail.com> | 2016-05-09 20:34:45 +0200 |
|---|---|---|
| committer | Gertjan van den Burg <gertjanvandenburg@gmail.com> | 2016-05-09 20:34:45 +0200 |
| commit | e81907a3d5c8af8a87e19492548e4aab55e84985 (patch) | |
| tree | 8272ab116cb530898ba12ac267fade179fa1e5d5 /src/strutil.c | |
| parent | remove some unnecessary spaces (diff) | |
| download | gensvm-e81907a3d5c8af8a87e19492548e4aab55e84985.tar.gz gensvm-e81907a3d5c8af8a87e19492548e4aab55e84985.zip | |
rename strutil to gensvm_strutil
Diffstat (limited to 'src/strutil.c')
| -rw-r--r-- | src/strutil.c | 176 |
1 files changed, 0 insertions, 176 deletions
diff --git a/src/strutil.c b/src/strutil.c deleted file mode 100644 index ca4181f..0000000 --- a/src/strutil.c +++ /dev/null @@ -1,176 +0,0 @@ -/** - * @file strutil.c - * @author Gertjan van den Burg - * @date January, 2014 - * @brief Utility functions for dealing with strings - * - * @details - * This file contains functions for reading files, reading strings from a - * format and checking start and ends of strings. - */ - -#include "strutil.h" - -/** - * @brief Check if a string starts with a prefix - * - * @param[in] str string - * @param[in] pre prefix - * @returns boolean, true if string starts with prefix, false - * otherwise - */ -bool str_startswith(const char *str, const char *pre) -{ - size_t lenpre = strlen(pre), - lenstr = strlen(str); - return lenstr < lenpre ? false : strncmp(pre, str, lenpre) == 0; -} - -/** - * @brief Check if a string ends with a suffix - * - * @param[in] str string - * @param[in] suf suffix - * @returns boolean, true if string ends with suffix, false - * otherwise - */ -bool str_endswith(const char *str, const char *suf) -{ - size_t lensuf = strlen(suf), - lenstr = strlen(str); - return lenstr < lensuf ? false : strncmp(str + lenstr - lensuf, suf, - lensuf) == 0; -} - -/** - * @brief Move to next line in file - * - * @param[in] fid File opened for reading - * @param[in] filename name of the file pointed to by fid - */ -void next_line(FILE *fid, char *filename) -{ - char buffer[MAX_LINE_LENGTH]; - get_line(fid, filename, buffer); -} - -/** - * @brief Read line to buffer - * - * @param[in] fid File opened for reading - * @param[in] filename name of the file - * @param[in,out] buffer allocated buffer to read to - */ -void get_line(FILE *fid, char *filename, char *buffer) -{ - if (fgets(buffer, MAX_LINE_LENGTH, fid) == NULL) { - fprintf(stderr, "Error reading file %s\n", filename); - exit(1); - } -} - -/** - * @brief Read a double from file following a format - * - * @param[in] fid File opened for reading - * @param[in] filename Name of the file - * @param[in] fmt Format containing a float format - * @returns value read (if any) - */ -double get_fmt_double(FILE *fid, char *filename, const char *fmt) -{ - char buffer[MAX_LINE_LENGTH]; - double value; - - get_line(fid, filename, buffer); - sscanf(buffer, fmt, &value); - return value; -} - -/** - * @brief Read a long integer from file following a format - * - * @param[in] fid File opened for reading - * @param[in] filename Name of the file - * @param[in] fmt Format containing a long integer format - * @returns value read (if any) - */ -long get_fmt_long(FILE *fid, char *filename, const char *fmt) -{ - char buffer[MAX_LINE_LENGTH]; - long value; - - get_line(fid, filename, buffer); - sscanf(buffer, fmt, &value); - return value; -} - -/** - * @brief Read all doubles in a given buffer - * - * @details - * This function is used to read a line of doubles from a buffer. All the - * doubles found are stored in a pre-allocated array. - * - * @param[in] buffer a string buffer - * @param[in] offset an offset of the string to start looking for - * doubles - * @param[in] all_doubles pre-allocated array of doubles (should be large - * enough) - * @returns number of doubles read - */ -long all_doubles_str(char *buffer, long offset, double *all_doubles) -{ - double value; - long i = 0; - char *start, *end; - - start = buffer + offset; - while (true) { - value = strtod(start, &end); - if (start != end) { - all_doubles[i] = value; - i++; - } else - break; - start = end; - end = NULL; - } - - return i; -} - -/** - * @brief Read all longs in a given buffer - * - * @details - * This function is used to read a line of longs from a buffer. All the - * longs found are stored in a pre-allocated array. - * - * @param[in] buffer a string buffer - * @param[in] offset an offset of the string to start looking for - * longs - * @param[in] all_longs pre-allocated array of longs (should be large - * enough) - * @returns number of longs read - */ -long all_longs_str(char *buffer, long offset, long *all_longs) -{ - long value; - long i = 0; - char *start, *end; - - start = buffer + offset; - while (true) { - value = strtol(start, &end, 10); - if (start != end) { - all_longs[i] = value; - i++; - } else - break; - start = end; - end = NULL; - } - - return i; -} |
