6

各文字を変数に出力しようとしています。

これに変更することで ANSI char 番号を出力できますがprintf("Value: %d\n", d[i]);、文字列の文字自体を実際に出力できません。

ここで何が間違っていますか?

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int len = strlen(argv[1]);
  char *d = malloc (strlen(argv[1])+1);
  strcpy(d,argv[1]);

  int i;
  for(i=0;i<len;i++){
    printf("Value: %s\n", (char)d[i]);
} 
    return 0;
}
4

2 に答える 2

9

%cC で文字を出力するには format を使用%sする必要があります。文字列へのポインターを使用する必要がある を使用していますが、この場合はポインターの代わりに整数を指定しています。

于 2013-09-28T03:14:14.773 に答える
2

以下は動作します。printf でトークン %s を使用するときに、文字列へのポインターを渡します。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int len = strlen(argv[1]);
  char *d = malloc (strlen(argv[1])+1);
  strcpy(d,argv[1]);

  printf("Value: %s\n", d);
  return 0;
}
于 2013-09-28T03:19:50.767 に答える