看看 字符串数组 变成什么了?
char word[] ={ 'h ', 'e ', 'l ', 'l ', 'o ', '! ', '\0 ' };
和
char word[] ={ 'h ', 'e ', 'l ', 'l ', 'o ', '! ' };
里面的 '\0 '代表什么 加 '\0 '和不加 '\0 '有什么区别??
[解决办法]
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
int i;
char word1[]={ 'h ', 'e ', 'l ', 'l ', 'o ', '! ', '\0 '};
char word2[]={ 'h ', 'e ', 'l ', 'l ', 'o ', '! '};
printf( "%s\n ",word1);
printf( "%s ",word2);
system( "pause ");
return 0;
}
你可以先尝试打印出这两段不同的字符串观察一番结果...
比如存储在在数组里的结果.... word1[]数组
|h|e|l|l|o|!|\0|
\0标志了字符串的结束.
printf函数中的格式%s规定, 输入参数必须由 '\0 '做为结束. . '\0 '就是用来标记字符串的结束.