C++ 中如何string 转char数组
发布网友
发布时间:2022-04-25 20:46
我来回答
共5个回答
热心网友
时间:2022-06-17 06:37
首先char不能做变量名
用string *a="123455555,123112313,141232313";
char *p,ch[100];
p=a;
for(int i=0;*p!='\0';i++)
{
ch[i]=*p
p++;
}
ch[i]='\0';//记得补上
想删除ch[1],你的方法不用要移位呀
for(i=1;ch[i+1]!='\0';i++)
{
ch[i]=ch[i+1];
}
ch[i]='\0';//记得补上
热心网友
时间:2022-06-17 06:37
string有一个函数c_str(),将字符串以C字符数组的形式返回
但是想要删除第二个字符的话,你只需要把字符数组除了第二个字符以后的每个字符向前移动一位就好,就是写一个循环就好了
for(int i=1;i<a.size();++i)
a[i]=a[i+1];
//删除a[1]字符
热心网友
时间:2022-06-17 06:38
string的对象也可以像数组那么访问,例如:
string str;
str = "abc";
cout<<str[0]<<endl; 也可以像数组这样访问。
所以你可以对你的对象进行遍历,当碰到逗号的话,就重新申请一个数组,然后把后面的字符存储到新的数组里面。
你可以再百度HI联系我,咱们探讨这个问题,一起制作也可以。
热心网友
时间:2022-06-17 06:38
#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
热心网友
时间:2022-06-17 06:39
前面可以用一个循环加到char中,
后面嘛用char[1]=“\0”应该可以