空终止符是由字符串文字组成的字符数组中的最后一个前导元素(例如Hello there!\0
)。它终止一个循环并防止进一步继续读取下一个元素。
请记住,空终止符不是空格字符。两者都可以用以下方式表示:
\0 - null terminator | ' ' - a space
如果要计算除空格以外的字母,请尝试以下操作:
#include <stdio.h>
#define MAX_LENGTH 100
int main(void) {
char string[MAX_LENGTH];
int letters = 0;
printf("Enter a string: ");
fgets(string, MAX_LENGTH, stdin);
// string[i] in the For loop is equivalent to string[i] != '\0'
// or, go until a null-terminator occurs
for (int i = 0; string[i]; i++)
// if the current iterated char is not a space, then count it
if (string[i] != ' ')
letters++;
// the fgets() reads a newline too (enter key)
letters -= 1;
printf("Total letters without space: %d\n", letters);
return 0;
}
你会得到类似的东西:
Enter a string: Hello world, how are you today?
Total letters without space: 26
如果字符串文字没有任何空终止符,那么除非程序员手动给出最大数量的元素以供读取,否则无法阻止它被读取。