2

タイトルはややこしいですが、説明するのは難しいです。

私たちのcメソッドでは:

char* wc(char** cmds, char** stringstoread, char** filename, char* result)
{

char arr[4];
    int count = 0; 

    while(*(cmds) != NULL)
    {
       if(strcmp(*(cmds), "-l") == 0) // Check each commands
         arr[count++] = 'l';
       else if(strcmp(*(cmds), "-c") == 0)
          arr[count++] = 'c';
       else if(strcmp(*(cmds), "-m") == 0)
          arr[count++] = 'm';
       else if(strcmp(*(cmds), "-w") == 0)
          arr[count++] = 'w';

       cmds++;
    }


    if(count == 0)
    {
      arr[0] = 'l', arr[1] = 'c', arr[2] = 'm',arr[3] = 'w';
    }

    while((*stringstoread) != NULL)
    {
      printf("inputs are %s \n", *(stringstoread));
      stringstoread++;
    }
return result;
}

私たちはデバッグ モード atm にいますが、今のところ、最後の while ループがこれを出力する理由を理解できません。

inputs are input 1 


inputs are input 2 


inputs are -l 
inputs are -w 
inputs are -c 
inputs are -m 

メソッドが次のように呼び出されたときに、-l、-w、-c、および -m がどのように stringtoread に入ったのかはわかりません。

  char tresult[10000];
  char *tcmds[] = { "-l", "-w", "-c", "-m"};
  char *tinput[] = {"input 1 \n\n", "input 2 \n\n"} ;
  char *tfilename[] = {"fil 1", "fil 2"} ;

  char *tmp = wc(tcmds, tinput, tfilename, tresult);

少し面倒ですが、誰かが助けてくれることを願っています。私たちはCを初めて使用するので、言語の標準的な誤解に遭遇していると考えてください。

4

2 に答える 2