主题:[讨论]字符串右移问题
[code=c]
void Left_Move(char *str,int n)//n为移位的位数
{
int i = 0;
char *temp = (char*)malloc(n);
int strLen = 0;
char *head = str;
strLen = strlen(str) + 1;
for(i = 0; i<n ; i++)
{
temp[i] = head[strLen-n+i];//临时存放从尾部移到头部的字符;
}
for(i = strLen - 2; i >= n;i--)
{
head[i] = head[i-n];
}
for(i = 0; i<n ;i++)
{
head[i] = temp[i];
}
free(temp);
}
在VC6下编译没有错误,确运行不了。这是哪里出了问题?
请教![/code]
void Left_Move(char *str,int n)//n为移位的位数
{
int i = 0;
char *temp = (char*)malloc(n);
int strLen = 0;
char *head = str;
strLen = strlen(str) + 1;
for(i = 0; i<n ; i++)
{
temp[i] = head[strLen-n+i];//临时存放从尾部移到头部的字符;
}
for(i = strLen - 2; i >= n;i--)
{
head[i] = head[i-n];
}
for(i = 0; i<n ;i++)
{
head[i] = temp[i];
}
free(temp);
}
在VC6下编译没有错误,确运行不了。这是哪里出了问题?
请教![/code]