完整程序
#include <stdio.h>
#include <windows.h>
/*
问题:
左旋转字符串
字符串的左旋转操作是把字符串前面的val个字符转移到字符串的尾部。
*/
void leftturn(char *arr,int val,int length);
void main()
{
char arr[] = {'a','s','d','f','g','h','j','k','q'};
int length = (sizeof(arr) / sizeof(arr[0]));
int val = 4;
leftturn(arr,val,length);
for(int i = 0;i < length;i++)
{
printf("旋转后的字符串为:%c\n",arr[i]);
}
system("pause");
return;
}
void leftturn(char *arr,int val,int length)
{
char cur; //用于记录字符串首位
//val 为前移循环次数
while(val--)
{
cur = arr[0];
//for循环用于将字符串前移一位
for(int i = 0;i < length - 1;i++)
{
arr[i] = arr[i+1];
}
//前移结束后,将记录的字符串首位赋值给字符串尾部
arr[length - 1] = cur;
}
}
输出结果:
说明:此文章为学习笔记,如有侵权请联系删除。