mike mike - 1 month ago 8
C Question

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

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

My

main()
looks like

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

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


If
argv
is a pointer to an array of pointers I'm assigning
init_d
to point to the value being pointed to by the pointer
argv
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

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]);  
Comments