2013-09-28 20 views
3

我試圖在變量中打印每個字符。通過字符數組和字符打印

我可以通過更改爲printf("Value: %d\n", d[i]);來打印ANSI字符編號,但是我沒有實際打印字符串字符本身。

我在做什麼錯在這裏?

#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

您應該使用%c格式打印的字符C.您正在使用%s,這需要使用字符串指針,但在你的情況下,您所提供的整數,而不是指針。

+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