|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
下列程序中的函数strcpy2()是新啊字符串两次赋值,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新字符串。例如:若t所指字符串为“efgh”,调用strcpy2后,s所指字符串为“efghefgh”。
- #include<stdio.h>
- void strcpy2(char *s,char *t)
- {
- char *p = t;
- while(*s++ = *t++); //这段代码是不是相当于把t的值赋给s?
- s = s-1; //这段是干什么用的,s是一个字符指针的首地址,相当于s【0】;那这句话的意思是s【0】=s【0-1】??
- while(*s++ = *p++);
- }
- int main(void)
- {
- char str1[100] = "abcd",str[] = "efgh";
- strcpy2(str1,str2);
- printf("%s\n",str1);
- return 0;
- }
复制代码
while(*s++ = *t++); //这段代码是不是相当于把t的值赋给s?
是
s = s-1; //这段是干什么用的,s是一个字符指针的首地址,相当于s【0】;那这句话的意思是s【0】=s【0-1】??
这里是因为上一段过程中s指针已经移动到了数组的末尾,将他减去1可以将指针重新移动到数组的开头,这样下面的代码就可以再复制一份
|
|