2013-05-31 40 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]); 
} 
相关问题