aboutsummaryrefslogtreecommitdiff
path: root/strings.c
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2021-11-05 01:13:17 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2021-11-05 01:13:17 -0400
commite8db05f86e193e597abca60e997bb17a20a8e0e8 (patch)
tree95aecd1247d0bfb2ebad79ca6c96dba9deae2308 /strings.c
parentee8f52b3ae390ade051437373cd62112a76ad8ff (diff)
downloadjdtalkc-e8db05f86e193e597abca60e997bb17a20a8e0e8.tar.gz
Produce reversed strings
* Produce randomized word characters in strings
Diffstat (limited to 'strings.c')
-rw-r--r--strings.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/strings.c b/strings.c
index cc95600..f3bcb86 100644
--- a/strings.c
+++ b/strings.c
@@ -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;
+}