将一个字符串循环向右移问题。
这个问题很简单,但是笔者在写的时候一直在想怎么缩短到最精简代码。以下是我的代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void Move(char*,int);
void MOVE(char*,int);
void MOVE_TEST(char*,int);
int main(int argc,char argv[])
{
char input[] = "abcdefghij";
int num;
scanf("%d",&num);
Move(input,num);
printf("\n");
MOVE(input,num);
printf("\n");
MOVE_TEST(input,num);
printf("\n");
return 0;
}
void Move(char *sin,int n)
{
int count = strlen(sin);
int i = n%count;
int j = i;
int m = 0;
while(i < count)
{
printf("%c",sin[i]);
i++;
}
while(m < j)
{
printf("%c",sin[m]);
m++;
}
}
void MOVE(char *SIN,int N)
{
int count = strlen(SIN);
printf("%s",SIN + N % count);
int number = N % count;