我做了这个作业来决定以下代码将做什么(纸上,没有在计算机上测试)。
char s1[]="Short Message Service", *s2, *s3;
s2=strchr(s1,'M');
s3=strchr(s2,'S');
strncpy(s1+1,s2,1);
strcpy(s1+2,s3);
Run Code Online (Sandbox Code Playgroud)
当我想检查我是否做得对时,我在计算机上运行它并得到以下结果:
s1 = SMservice
s2 = ice
s3 = Service
Run Code Online (Sandbox Code Playgroud)
我以为s2会是,"Message Service"但它变成了"ice". 显然它在strcpy(s1+2,s3)被调用后发生了变化;有人可以解释为什么以及如何影响该功能s2吗?