迭代字串中的字元

如果我們知道字串的長度,我們可以使用 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++;
}