So I am trying to read the words from a file. However, I have to use `putchar(ch)` where `ch` is an `int`. How do I convert ch to a string (char \*) so I can store it in a char \* variable and pass it to another function that takes char \* as a parameter. And I actually just want to store it but not print it.

This is what I have:

```
int main (void)
{
   static const char filename[] = "file.txt";
   FILE *file = fopen(filename, "r");
   if ( file != NULL )
   {
      int ch, word = 0;
      while ( (ch = fgetc(file)) != EOF )
      {
         if ( isspace(ch) || ispunct(ch) )
         {
            if ( word )
            {
               word = 0;
               putchar('\n');
            }
         }
         else
         {
            word = 1;
            putchar(ch);
         }
      }
      fclose(file);
   }
   return 0;
}

```
['https://Stackoverflow.com/questions/31778365', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/4807625/']
`sprintf(char_arr, "%d", an_integer);`

This makes `char_arr` equal to string representation of `an_integer`
(This doesn't print anything to console output in case you're wondering, this just 'stores' it)
An example:

```
char char_arr [100];
int num = 42;
sprintf(char_arr, "%d", num);

```

`char_arr` now is the string `"42"`. `sprintf`automatically adds the null character `\0` to `char_arr`.

If you want to append more on to the end of char\_arr, you can do this:

```
sprintf(char_arr+strlen(char_arr), "%d", another_num);

```

the '+ strlen' part is so it starts appending at the end.

more info here: <http://www.cplusplus.com/reference/cstdio/sprintf/>
To represent a single character as a character string, I find using a simple 2-character buffer to be as easy as anything else. You can take advantage of the fact that dereferencing the string points to the first character and simply assign the character you wish to represent as a string. If you have initialized your 2-char buffer to `0` (or `'\0'`) when declared, you have insured your string is always `null-terminated`:

**Short Example**

```
#include <stdio.h>

int main (void) {

    int ch;
    char s[2] = {0};
    FILE *file = stdin;

    while ( (ch = fgetc(file)) != EOF ) {
        *s = ch;
        printf ("ch as char*: %s\n", s);
    }

    return 0;
}

```

**Use/Output**

```
$ printf "hello\n" | ./bin/i2s2
ch as char*: h
ch as char*: e
ch as char*: l
ch as char*: l
ch as char*: o
ch as char*:

```

**Note:** you can add `&& ch != '\n'` to the while condition to prevent printing the newline.