2013-05-31 54 views
2
int 
cycle(n) { 
    char *s3 = "Different"; 
    int i, length; 
    length = strlen(s3) 
    printf("%s\n", s3); 
    for (i=0; i<length; i++) { 
     printf("%s\n", &s3[i]); 

    } 
    return 0; 
} 

我想在一個時間上的每個新行打印出一個字符,但輸出看起來是這樣的 -打印僅數組的第一個字符

C: Different 
C: ifferent 
C: fferent 
ect. 

我如何讓它只輸出一次一個字符?實施例(C:d,C:I,C:女,ECT)

+6

'%c',而不是'%s',並且不通過地址。 –

+3

作爲'%c'的替代方法,您可以使用'%.1s',它將最多打印一個字符(但不打印任何內容,如果該字符是NUL''\ 0'',而'%c'將打印NUL如果被告知這樣做)。 –

回答

4

你應該改變:

printf("%s\n", &s3[i]); 

printf("%c\n", s3[i]); 

前者打印一個string而後者打印一個char

2
#include <stdio.h> 
for (int i = 0; i < strlen(s3); i++) { 
    printf("%c\n", s3[i]); 
} 
相關問題