迭代字符串中的字符

如果我们知道字符串的长度,我们可以使用 for 循环遍历其字符:

char * string = "hello world"; /* This 11 chars long, excluding the 0-terminator. */
size_t i = 0;
for (; i < 11; i++) {
    printf("%c\n", string[i]);    /* Print each character of the string. */
}

或者,如果我们不知道字符串是什么,我们可以使用标准函数 strlen() 来获取字符串的长度:

size_t length = strlen(string);
size_t i = 0; 
for (; i < length; i++) {
    printf("%c\n", string[i]);    /* Print each character of the string. */
}

最后,我们可以利用 C 中的字符串保证为空终止的事实(我们在前面的例子中将它传递给 strlen() 时已经做过了;-))。无论大小如何,我们都可以遍历数组,并在达到 null 字符后停止迭代:

size_t i = 0;
while (string[i] != '\0') {       /* Stop looping when we reach the null-character. */
    printf("%c\n", string[i]);    /* Print each character of the string. */
    i++;
}