Advertisement
oaktree

dynamic string input with realloc

Aug 24th, 2016
639
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.71 KB | None | 0 0
  1. #include <string.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. int main(void) {
  6.  
  7.     char* s = NULL; /* start off with just a pointer */
  8.     size_t s_len = 0; /* A pointer to nothing has a strlen of 0. */
  9.  
  10. /*
  11.     Start taking input, dynamically.   
  12. */
  13.     printf("Input a string...\n");
  14.  
  15.     do {
  16.  
  17.         s = realloc( s , ++s_len * sizeof(char) );
  18.  
  19.     } while ( ( s[ s_len - 1 ] = getchar() ) != '\n' );
  20.  
  21.     s[--s_len] = 0x00; /* remember to delimit the string! */
  22. /*
  23.     End dynamic input procedure.
  24. */
  25.  
  26.     printf("\n\n%s\n", s);
  27.     printf("s_len = %i\n", (int)s_len);
  28.  
  29.     /* Print out the ASCII codes. */
  30.     for (size_t i = 0; i < s_len; i++)
  31.         printf("%i ", (int)s[i]);
  32.     printf("\n");
  33.  
  34.     /* can't forget to free! */
  35.     free(s);
  36.  
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement