首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-02-19 
请问:看看程序是什么错误?一个实现字符串循环移动的程序比如abcdeAB 循环右移2位为ABabcde #include

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

热点排行