题目:若有字符串abcdef,用户输入k个字符,则旋转k个字符,例子:abcdef,若用户输入2,则输出cdefab.
首先,我们先创建好源文件,并写好我们将要调用的函数,本文中实现功能函数名为reverse
int main()
{
char a[] = "abcdef";
reverse(a, 2);
return 0;
}
我们首先要解决旋转次数,用户用k来设置旋转次数,所以我们也用变量k来设置旋转次数
for (i = 0; i < k; i++)
}
我们可以先用一个变量来存储首字符,然后在把其余的字符一个一个往前挪,如图
char p = *a;//存储首地址,因为本文用的是指针,且p=a[0]<=>p=*(a+n);
for (j = 0; j < len - 1; j++)
{
a[j] = a[j + 1]; //*(a+j)=*(a+j+1);==a[j] = a[j + 1];
}
a[len - 1] = p;
最终我们相结合,把整个函数填写完整
void reverse(char* a, int k)
{
int i=0, j=0;
int len = strlen(a);//获取我们字符串的长度
for (i = 0; i < k; i++)
{
char p = *a;//存储首地址,因为本文用的是指针,且p=a[0]<=>p=*(a+n);
for (j = 0; j < len - 1; j++)
{
a[j] = a[j + 1];
}
a[len - 1] = p;
}
printf("%s\n", a);
}
最后让我们运行一下我们的代码
完美完成!
反转字符串(暴力反转法)https://download.csdn.net/download/weixin_44681167/22389197?spm=1001.2014.3001.5503