关于c++指针的问题

想把字符串a和b的首地址附值给指针p1和p2,下面的语句不对,应该怎么做呢?stringa;char*p1;p1=&a;补充:比如:a="abcdef"则*p1=='a'... 想把字符串a和b的首地址附值给指针p1和p2,下面的语句不对,应该怎么做呢?
string a;
char*p1;
p1=&a;

补充:
比如:a="abc def"则*p1=='a',*(p1+1)=='b',*(p1+2)=='c'.....
a只能是string型
展开
 我来答
featheraaa
2007-09-08 · 超过19用户采纳过TA的回答
知道答主
回答量:111
采纳率:0%
帮助的人:59.1万
展开全部
sting是标准库的一种类型;
一般来说举纯凡是标准库类型的都有迭代器,比如说向量vector,sting.等;
按照你的意思可以写成迹局
string a;
string::iterator pointa=a.begin();//表示获得a的头地址;
为了不使其越界,还必须限制pointa!=a.end();//end()返回末地址
#include<iostream>姿答让
#include<string>
using namespace std;
int main()
{

string a;
cin>>a;
string::iterator pa=a.begin();
while(pa!=a.end())
{
cout<<*pa++<<endl;
}
return 0;
}
这个程序已经调试过了
lijunyin168
2007-09-07 · TA获得超过391个赞
知道小有建树答主
回答量:187
采纳率:0%
帮助的人:165万
展开全部
不能将字符串常量赋给一个char型变量 char a="abc def"是错误的
但是可野迹乱以将州洞其赋给一个char 型数组
char a[]="abc def";
char *p1=a;
这样是合法的
也可以将其赋给一个char 型指针
char *a="abc def";
char *p1=a;
这样也正确
两种方法颂档都可以达到你要的效果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我是浪剑
2007-09-08
知道答主
回答量:22
采纳率:0%
帮助的人:11.1万
展开全部
string a("abcdef");
const char *p1=a.c_str();
cout<<a<<endl;
cout<<p1<<endl;
cout<<*(p1+1)<<endl;
利用字符串类的成明空员函举销数c_str(),其返回值为const char * 类型,所以激答瞎p1必须声明为const char *
希望我的回答能给你有所帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liu3035
2007-09-07 · 超过36用户采纳过TA的回答
知道答主
回答量:138
采纳率:0%
帮助的人:121万
展开全部
将a定义为字符串数组就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式