下面程序段执行后的输出结果是___。
char x[] = "the teacher"; int i = 0;
while ( x[++i] != '\0' )
if ( x[i - 1] == 't' )
printf( "%c", x[i] );
答案是he。
初学者包括我自己,都把\0和空格混为一谈。实际上在计算机看来空格和\0 并不一样。
这是百度的定义:
空格和\0的区别
空格和‘\0'在C语言中有明显的区别:
1.‘\0'是一个特殊的字符,它被用来标记字符串的结
束。其ASCII值为0,当程序读取到‘\0’时,就知道
已经到达了字符串的末尾。
2.空格是一个可打印的字符,它用来表示空白文本
区域。其ASCIl值为32,并不表示字符串的结
束。
3.在C语言中,为字符串分配内存时,必须考虑
到‘\0'字符,因为它会占用一个字节的空间。
4.如果使用scanf函数接收字符串,字符串中不能含
有空格,否则scanf会以空格作为字符串的结束
符。
5.为了接收空格,可以使用gets函数,它会将以回
车结束的字符顺序存入到以str为首地址的内存单
元中,最后写入字符串结束标志‘\0'。
综上所述,10和空格在C语言中有明显的区
别,10'是字符串的结束标识符,而空格则是一个
普通的字符,用于表示空白文本。