我想问你是否知道如何移动数组中的字符串位置。我想实现这样的事情。
如果a=1
1 2 0 0 0 0
如果a=2
0 0 1 2 0 0
如果a=3
0 0 0 0 1 2
到目前为止我还没有代码,我只想一些想法。
最佳答案
#include <stdio.h>
#include <string.h>
/*
void rotate_right(char *str, size_t n){
size_t len = strlen(str);
char temp[n %= len];
memcpy(temp, str + len - n, n);
memmove(str + n, str, len - n);
memcpy(str, temp, n);
}
*/
void rotate_right1(char *str){
size_t len = strlen(str);
char temp = str[len-1];
memmove(str + 1, str, len - 1);
str[0] = temp;
}
void rotate_right(char *str, size_t n){
while(n--)
rotate_right1(str);
}
int main(void){
char data[] = "120000";
char wk[sizeof(data)];
int a;
for(a=1;a<=3;++a){
strcpy(wk, data);
rotate_right(wk, 2*(a-1));
printf("%s\n", wk);
}
return 0;
}
关于c - 移动数组中的字符串位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17191681/