mike mike - 11 months ago 45
C Question

How to read "string" from command line argument in C?

I've a question about passing in parameters via the command line.


looks like

int main(int argc, char **argv){
int b, d, n, flag;
char *init_d, tst_dir[100];

//printf(); <--------What do I have to do to init_d so that I can print it later?

is a pointer to an array of pointers I'm assigning
to point to the value being pointed to by the pointer
points to? (If that even makes sense)

I assume I have to get that value into a character array in order to print it out but if I don't know the size of the "string" I am passing in, I am not sure how to achieve this.
For instance if i run my code './myprogram hello' compared to './myprogram alongerinput'

Answer Source

You can print the arguments without transferring them into character arrays. They are null-terminated C strings and printf eats them for breakfast:

for (i=0; i<argc; i++)
  printf("%s\n", argv[i]);