小编Blu*_*Dog的帖子

strcpy 如何改变字符串的值

我做了这个作业来决定以下代码将做什么(纸上,没有在计算机上测试)。

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吗?

c string strcpy strncpy

2
推荐指数
1
解决办法
422
查看次数

标签 统计

c ×1

strcpy ×1

string ×1

strncpy ×1