2013-09-28 2 views
3

각 문자를 변수에 인쇄하려고합니다.문자 배열을 반복하고 문자를 인쇄하십시오.

printf("Value: %d\n", d[i]);으로 변경하여 ANSI char 번호를 인쇄 할 수 있지만 실제로 문자열 문자 자체를 인쇄하지 못했습니다.

내가 뭘 잘못하고있어?

#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; 
} 

답변

8
당신은 당신은 문자열에 대한 포인터를 사용하는 것이 필요하지만, 귀하의 경우에는 대신 포인터의 정수를 제공하고 있습니다 %s를 사용하는 C에서 문자를 인쇄 할 수 %c 형식을 사용해야합니다

.

+0

고맙습니다 @mvp – ojhawkins

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; 
} 
+0

감사합니다. @Tay Wee Wen +1 – ojhawkins

관련 문제