Cのtoupper()関数がどのように機能するのか疑問に思っています。私は以下のコードでそれを試していますが、私は間違いなく何か間違ったことをしています。コードはコンパイルされますが、toupper()に渡された引数は大文字になりません...
char **copyArgs(int argc, char **argv) {
char **a = malloc(sizeof(char *) * (argc));
int i;
for(i = 0; i < argc; i++) {
int size = strlen(argv[i]);
a[i] = malloc(sizeof(char) * (size + 1));
strcpy(a[i], argv[i]);
a[i] = toupper(a[i]);
}
return a;
}
これを「onetwo」でテストすると、「ONE TWO」ではなく、「onetwo」になります。アドバイスをいただければ幸いです。