读书人

请教:看看程序是什么东东

发布时间: 2012-02-19 19:43:38 作者: rapoo

请问:看看程序是什么错误?
一个实现字符串循环移动的程序
比如 "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;
}

读书人网 >C++

热点推荐