/* 如下程序,使用 malloc() 分配空间。*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 10000000
int main(void)
{
char * ar = NULL, ch;
int n, i, j;
ar = (char *)malloc(sizeof(char) * MAX); /* 为数组分配内存 */
if(ar == NULL)
exit(1);
ar[0] = '\0';
printf("请输入字符串: ");
gets(ar);
/* 足够大-_- */
printf("请输入要如何移动: ");
while(scanf("%d", &j) == 1)
{
while(getchar() != '\n');
n = strlen(ar);
j %= n;
if(j < 0)
{
j *= -1;
ch = ar[j];
ar[j] = '\0';
printf("%c%s%s\n", ch, &ar[j + 1], ar);
}
else if(j > 0)
{
ch = ar[n - j];
ar[n - j] = '\0';
printf("%c%s%s\n", ch, &ar[n - j + 1], ar);
}
else
puts(ar);
printf("请输入字符串: ");
gets(ar);
/* 足够大-_- */
printf("请输入要如何移动: ");
}
free(ar);
getchar();
return 0;
}
[[italic] 本帖最后由 cosdos 于 2007-12-3 20:36 编辑 [/italic]]