小编Sha*_*Kim的帖子

C 自动将空字符附加到字符串中?

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

int main(int argc, const char * argv[]) {
    int i;
    char s1[100] = "Computer Programming Class";
    char s2[100] = "ECE";
    
    int length = (int)strlen(s1);
    for (i = 0; i < length; i++) {
        s2[i] = s1[length - 1 - i];
    }
    
    s2[i] = '\n';
    printf("%s", s2);
    
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是我的一项测试,我不明白为什么它会按预期工作。就是一段代码,将s1的顺序颠倒过来,存到s2中,然后打印出来。在我看来,当 s1 向后存储时,s2 中的空字符将被覆盖,而且 s1 中的空字符永远不会写入 s2 中,因为它是从最后一个字符开始的。但打印出来效果很好。为什么?

c arrays initialization string-literals zero-initialization

4
推荐指数
1
解决办法
309
查看次数