I need to make duplicate of all words in string, and a space should be inserted between repeated words.

*Definition of word:*
array of characters separated by: digits, period, comma, space, tab, or newline. So a word can contain every character besides these mentioned.

EXAMPLES:

```
char str[]="one.two three";
char str[]="!4A7+++3---";

```

OUTPUT:

```
"one one.two two three three"
"! !4A A7+++ +++3--- ---"

```

Code:

```
#include <stdio.h>
char *make_duplicate(char *str) {
  int i = 1;
  char *s = str;
  while (*s != '\0') {
    if (*str == 48 || *str == 49 || *str == 50 || *str == 51 || *str == 52 ||
        *str == 53 || *str == 54 || *str == 55 || *str == 56 || *str == 57 ||
        *str == 44 || *str == 46 || *str == 9 || *str == 10 || *str == 32)
      i++;
    s++;
  }
  return str;
}
int main() {
  char str[]="one.two three";
  // char str[]="!4A7+++3---";
  printf("%s", make_duplicate(str));
  return 0;
}

```

Numbers in my code are ASCII values of characters that cannot be part of word.

In my code I find how many words are in string. How could I after that make that number of duplicates in string?

* Note: is not allowed to use functions from the `string.h`, `stdlib.h` libraries, as well as the `sprintf` and `sscanf` functions from the stdio.h library. It is not allowed to create auxiliary strings or strings.