diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2021-11-05 01:13:17 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2021-11-05 01:13:17 -0400 |
commit | e8db05f86e193e597abca60e997bb17a20a8e0e8 (patch) | |
tree | 95aecd1247d0bfb2ebad79ca6c96dba9deae2308 /strings.c | |
parent | ee8f52b3ae390ade051437373cd62112a76ad8ff (diff) | |
download | jdtalkc-e8db05f86e193e597abca60e997bb17a20a8e0e8.tar.gz |
Produce reversed strings
* Produce randomized word characters in strings
Diffstat (limited to 'strings.c')
-rw-r--r-- | strings.c | 47 |
1 files changed, 47 insertions, 0 deletions
@@ -155,3 +155,50 @@ char *str_title_case(char *s) { } return s; } + +char *str_randomize(char *s) { + size_t len; + char tmp = 0; + len = strlen(s); + for (size_t i = len - 1; i > 0; i--) { + size_t from = random() % i + 1; + tmp = s[from]; + s[from] = s[i]; + s[i] = tmp; + } + return s; +} + +char *str_randomize_words(char *s) { + char old[OUTPUT_SIZE_MAX]; + char buf[OUTPUT_SIZE_MAX]; + char *oldp; + char *word; + + strcpy(old, s); + oldp = old; + memset(buf, '\0', sizeof(buf)); + size_t len = strlen(s); + + while ((word = strsep(&oldp, " ")) != NULL) { + str_randomize(word); + strcat(buf, word); + strcat(buf, " "); + } + strncpy(s, buf, len); + return s; +} + +char *str_reverse(char *s) { + size_t dest; + char buf[1024]; + buf[0] = '\0'; + + dest = 0; + for (size_t src = strlen(s); src > 0; src--, dest++) { + buf[dest] = s[src - 1]; + } + buf[dest] = '\0'; + strcpy(s, buf); + return s; +} |