鱼C论坛

 找回密码
 立即注册
查看: 3375|回复: 1

哪位大神帮忙解释一下这一段代码呀

[复制链接]
发表于 2012-3-13 11:31:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<iostream>
using namespace std;
void shift(char*s,int n);
int main()
{
char s[]="123456";
int n=2;
shift(s,n);
cout<<s<<endl;
return 0;
}
void shift(char*s,int n)
{
char *p,*q;
int len=strlen(s);
if(len==0)return;
if(n<=0||n>=len)return;

char*s2=(char*)malloc(len+1);
p=s;
q=s2+n%len;
while(*p)
{
  *q++=*p++;
  if(q-s2>=len)
  {
   *q='\0';
   q=s2;
  }
}
strcpy(s,s2);
free(s2);
}
我看不明白的是字符5跟1是如何进入字符串q的,还有是如何操作字符串s2的呀
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-3-13 23:21:03 | 显示全部楼层
只是字符复制了一下而已嘛
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-12 00:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表