关于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型 展开
string a;
char*p1;
p1=&a;
补充:
比如:a="abc def"则*p1=='a',*(p1+1)=='b',*(p1+2)=='c'.....
a只能是string型 展开
4个回答
展开全部
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;
}
这个程序已经调试过了
一般来说举纯凡是标准库类型的都有迭代器,比如说向量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;
}
这个程序已经调试过了
展开全部
不能将字符串常量赋给一个char型变量 char a="abc def"是错误的
但是可野迹乱以将州洞其赋给一个char 型数组
char a[]="abc def";
char *p1=a;
这样是合法的
也可以将其赋给一个char 型指针
char *a="abc def";
char *p1=a;
这样也正确
两种方法颂档都可以达到你要的效果
但是可野迹乱以将州洞其赋给一个char 型数组
char a[]="abc def";
char *p1=a;
这样是合法的
也可以将其赋给一个char 型指针
char *a="abc def";
char *p1=a;
这样也正确
两种方法颂档都可以达到你要的效果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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 *
希望我的回答能给你有所帮助。
const char *p1=a.c_str();
cout<<a<<endl;
cout<<p1<<endl;
cout<<*(p1+1)<<endl;
利用字符串类的成明空员函举销数c_str(),其返回值为const char * 类型,所以激答瞎p1必须声明为const char *
希望我的回答能给你有所帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将a定义为字符串数组就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询