Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert int to char* C

Tags:

c

char

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;
}
like image 837
PTN Avatar asked Oct 17 '25 14:10

PTN


1 Answers

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". sprintfautomatically 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/

like image 100
user5184003 Avatar answered Oct 20 '25 06:10

user5184003