请问:看看程序是什么错误?
一个实现字符串循环移动的程序
比如 "abcdeAB " 循环右移2位为 "ABabcde "
#include <iostream>
#include <string>
using namespace std;
int main()
{
int i, n;
char *p = "abcdefgAB ";
n = 2;
char *q;
char *pNew;
pNew = q;
int l = strlen(p);
for (i=l-n; i <l; i++)
*(q++) = *p[i]; //error C2100: illegal indirection
for (i=0; i <l-n; i++)
*(q++) = *p[i]; //error C2100: illegal indirection
cout < < pNew;
return 0;
}
请问错误怎么解决
[解决办法]
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
int main()
{
int i, n;
char p[] = "abcdefgAB "; //最好不要是常量
char *q, *qNew;
int l = strlen(p);
q=new char[l+1]; //分配空间
n=2;
qNew = q; //保存指针
for (i=l-n; i <l; i++)
*(q++) = p[i];
for (i=0; i <l-n; i++)
*(q++) = p[i];
cout < < qNew;
system( "pause ");
return 0;
}