C++ 中如何string 转char数组
我想做一个类比如说stringa="123455555,123112313,141232313";然后以,为分割分别加入到char数组里。还有我如果我想删除char[1]...
我想做一个类 比如说 string a = "123455555,123112313,141232313";
然后以 , 为分割分别加入到char数组里。
还有 我如果我想删除 char[1]的话 直接 char[1] = ""; 就可以了么 自学C++ 有些不太懂。 展开
然后以 , 为分割分别加入到char数组里。
还有 我如果我想删除 char[1]的话 直接 char[1] = ""; 就可以了么 自学C++ 有些不太懂。 展开
6个回答
展开全部
string有一个函数c_str(),将字符串以C字符数组的形式返回
但是想要删除第二个字符的话,你只需要把字符数组除了第二个字符以后的每个字符向前移动一位就好,就是写一个循环就好了
for(int i=1;i<a.size();++i)
a[i]=a[i+1];
//删除a[1]字符
但是想要删除第二个字符的话,你只需要把字符数组除了第二个字符以后的每个字符向前移动一位就好,就是写一个循环就好了
for(int i=1;i<a.size();++i)
a[i]=a[i+1];
//删除a[1]字符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string的对象也可以像数组那么访问,例如:
string str;
str = "abc";
cout<<str[0]<<endl; 也可以像数组这样访问。
所以你可以对你的对象进行遍历,当碰到逗号的话,就重新申请一个数组,然后把后面的字符存储到新的数组里面。
你可以再百度HI联系我,咱们探讨这个问题,一起制作也可以。
string str;
str = "abc";
cout<<str[0]<<endl; 也可以像数组这样访问。
所以你可以对你的对象进行遍历,当碰到逗号的话,就重新申请一个数组,然后把后面的字符存储到新的数组里面。
你可以再百度HI联系我,咱们探讨这个问题,一起制作也可以。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream>
#include<vector>
#include<string>
using namespace std;
void main()
{
vector<string>svec;
string str;
while(cin>>str)
svec.push_back(str);
size_t it=0;
char **prr=new char*[svec.size()];
for(vector<string>::iterator ix=svec.begin();ix!=svec.end();ix++,it++)
{
char *p=new char[(*ix).size()+1];
strcpy(p,(*ix).c_str());
prr[it]=p;
}
for(vector<string>::iterator j=svec.begin();j!=svec.end();j++)
{
cout<<*j<<endl;
}
for(size_t k=0;k!=svec.size();k++)
{
cout<<prr[k]<<endl;
}
for(size_t t=0;t!=svec.size();t++)
delete []prr[t];
delete []prr;
}
这个程序动态创建一个数组,把string变为char
#include<vector>
#include<string>
using namespace std;
void main()
{
vector<string>svec;
string str;
while(cin>>str)
svec.push_back(str);
size_t it=0;
char **prr=new char*[svec.size()];
for(vector<string>::iterator ix=svec.begin();ix!=svec.end();ix++,it++)
{
char *p=new char[(*ix).size()+1];
strcpy(p,(*ix).c_str());
prr[it]=p;
}
for(vector<string>::iterator j=svec.begin();j!=svec.end();j++)
{
cout<<*j<<endl;
}
for(size_t k=0;k!=svec.size();k++)
{
cout<<prr[k]<<endl;
}
for(size_t t=0;t!=svec.size();t++)
delete []prr[t];
delete []prr;
}
这个程序动态创建一个数组,把string变为char
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前面可以用一个循环加到char中,
后面嘛用char[1]=“\0”应该可以
后面嘛用char[1]=“\0”应该可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询