C++中strcpy函数和memcpy函数的使用

本文展示了如何使用C++中的strcpy和memcpy函数实现字符串循环右移的功能。通过实例代码解释了两个函数的用法,分别用于字符串的循环移动操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编写一个函数,作用是把一个char组成的字符串循环右移n个。比如字符串:Iloveyou循环向右移动2个位置得到ouIlovey.



#include <iostream>
#include<cstring>

using namespace std;

#define MAX 20
void LoopMove(char *str, int steps)
{


int len = strlen(str);
//cout<<"len is"<<len<<endl;


char tmp[MAX];
strcpy(tmp, str+len-steps);//strcpy的用法是strcpy(a,b),将b指针位置之后的数组元素赋值给a,需要注意结束标识符为‘\0’.
strcpy(tmp+steps, str);
tmp[len]  = '\0';
strcpy(str, tmp);
printf("%s",str);
cout<<endl;


}
void LoopMove2(char *st2,int steps)
{
int len=strlen(st2);
char temp[MAX];
// char temp1[MAX];
/*
memcpy(temp,(st2+(len-steps)),steps);
memcpy(temp1,st2,(len-steps));
memcpy((temp+steps),temp1,(len-steps));
// temp[len]='\0';
strcpy(st2,temp);
*/
memcpy(temp,st2+(len-steps),steps);//memcpy(a,b,c)将b指针位置处的c个数组元素赋值给a.
memcpy(temp+steps,st2,(len-steps));
memcpy(st2,temp,len);
printf("%s",st2);

}


int main()
{
char st[]="Iloveyou";
LoopMove(st,2);
char st2[]="Iloveyou";
LoopMove2(st2,2);
// cout<<str<<endl;
return 0;
}


//字符串传递形参
/*
void test(char *&p)
{
p="B";
}
int main()
{ char *p="A";
test(p);
cout<<p;
}
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值