我是Cstring的新手,很抱歉提出愚蠢的问题,请帮忙.
char string[10];
printf("Give me your last name:\n");
scanf ("%s", string); //if i type 123 123
printf("Original string:%s\n", string); //it shows 123
Run Code Online (Sandbox Code Playgroud)
相比于:
char string[] = "123 123";
printf("Original string:%s\n", string); //it shows 123 123
Run Code Online (Sandbox Code Playgroud)
scanf将空格视为字符串的结尾.
所以一旦遇到一个space角色就会停止阅读.
而在c风格的情况下,数组\0被认为是数组的结尾.
初始化时,
char string[] = "123 123";
Run Code Online (Sandbox Code Playgroud)
A \0隐含地添加在第7个字符的末尾3,它标记了该数组的结尾.