我也感觉不太对劲,应该是*p1='\0'
来给字符串加上结束标志,而不是p1='\0'
'\0'表示字符串结尾,while循环里没给p1结尾
字符串是以'\0'作为结束的标志
初始化字符数组有两种方法:
一种是:char array[10]={"hello"};
另一种是:char array[10]={'h','e','l','l','\0'};
第一种方法用途较广,初始化时,系统自动在数组没有填值的位置用,'\0'补上。另外, 这种方法中的花括号可以省略,即能表示成:char array[10]="hello";
没有'\0'是能成字符串,是因为你按第一种方式初始化时,系统自动补上了。'\0'作为字符串终止符,是所谓有始有终,加上是更完整,更好一些的。
以上仅供参考,如有任何疑问,可以评论回复,看到即回。
希望对题主有所帮助!可以的话,点个采纳!