またプログラムで躓いてしまい、どうにも詰まってしまったので質問をさせてもらいにきました。
示されたプログラムを、「コマンド引数が与えられていない場合にはHello,everyone.を返し、引数が1個の場合や空白を含めた
文字数が99字を超える場合も正しく動作するように修正する」という課題が出たのですが、引数による管理ということで
手法はある程度浮かんだのですが、プログラム自体の動作がつかみきれておらず、どこにどう手を加えればいいのかがこんがらがっています。
OSはLinuxです。どうかよろしくお願いします。
#include <stdio.h>
#define LEN 100
int main(int argc, char *argv[]){
int i,j;
int index;
static char name[LEN];
/* */
index=0;
/* 自己記述 */
if(argc == 1) /* 引数がない場合nameにeveryoneを入れる */
name[] = "everyone"; /* hello_to.c:14: error: expected expression before ']' token のコンパイルエラー*/
/* */
else{
for(i=1; i<3; i++){ /* ループ回数を引数の数で管理 >argc? */
for(j=0; argv[i][j] != '\0'; j++){
name[index++]=argv[i][j];
}
if (i==2){ /* この部分の処理がよくわかっていない */
name[index] = '\0';
} else {
name[index++]=' ';
}
}
}
/* 文字数が100を越えた場合も動作するような処理を入れる */
printf("Hello, %s.\n",name);
return 0;
}