c++中,如何把几个char组合成一个string?
#include<iostream>usingnamespacestd;intmain(){chara[2];a[0]='a';a[1]='b';stringb=a;co...
#include <iostream>
using namespace std;
int main()
{
char a[2];
a[0]='a';
a[1]='b';
string b=a;
cout<<b<<endl;
system("pause");
return 0;
} 展开
using namespace std;
int main()
{
char a[2];
a[0]='a';
a[1]='b';
string b=a;
cout<<b<<endl;
system("pause");
return 0;
} 展开
5个回答
展开全部
#include <stdio.h>
#include <string>
#include <iostream>
int main()
{
char a[]="hahaha";
char b[]="shadiao";
char c[]="woshiniba";
char s[255];//255是固定大小 可以根据a,b,c的大小来new一个固定长度的字符串
sprintf(s,"%s%s%s",a,b,c); //字符串格式化命令,C++中拼接字符串非常有用的代码
std::string str(s); //将char数组构造成string字符串
printf("%s\n",s);
std::cout<<str<<std::endl;
while (1);
return 1;
}
#include <string>
#include <iostream>
int main()
{
char a[]="hahaha";
char b[]="shadiao";
char c[]="woshiniba";
char s[255];//255是固定大小 可以根据a,b,c的大小来new一个固定长度的字符串
sprintf(s,"%s%s%s",a,b,c); //字符串格式化命令,C++中拼接字符串非常有用的代码
std::string str(s); //将char数组构造成string字符串
printf("%s\n",s);
std::cout<<str<<std::endl;
while (1);
return 1;
}
展开全部
可以如下构造:
#include <iostream>
using namespace std;
int main()
{
char a[2];
a[0]='a';
a[1]='b';
string b(a, a+2); // 使用一对迭代器a,a+2初始化
// string b(a, 2); // 这样也可以,b被初始化为a所指向数组的前2个元素的副本
cout<<b<<endl;
system("pause");
return 0;
}
#include <iostream>
using namespace std;
int main()
{
char a[2];
a[0]='a';
a[1]='b';
string b(a, a+2); // 使用一对迭代器a,a+2初始化
// string b(a, 2); // 这样也可以,b被初始化为a所指向数组的前2个元素的副本
cout<<b<<endl;
system("pause");
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//采取强制类型转换,以下程序已通过调试
#include <iostream>
#include <string>
using namespace std;
int main()
{
char a[2];
a[0]='a';
a[1]='b';
string b=(string)a;
cout<<b<<endl;
system("pause");
return 0;
}
由于你的字符串溢出 肯定是输出乱码
ab烫?
请按任意键继续. . .
#include <iostream>
#include <string>
using namespace std;
int main()
{
char a[2];
a[0]='a';
a[1]='b';
string b=(string)a;
cout<<b<<endl;
system("pause");
return 0;
}
由于你的字符串溢出 肯定是输出乱码
ab烫?
请按任意键继续. . .
追问
我知道是乱码的,关键是如何改啊。
我有一个笨方法是如下:
char c[3];
c[0]=a[0];
c[1]=a[1];
cout<<c<<endl;这样便得到ab了。只是每次都要赋值很麻烦。
追答
改法 你不懂char数组么?
char a[2];
a[0]='a';
a[1]='b';
a[2]='\0';
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <iostream>
#include<string>
using namespace std;
int main()
{
char a[3];
a[0]='a';
a[1]='b';
a[2]='\0';
string str(a);
cout<<str<<endl;
system("pause");
return 0;
}
字符数组最后一位要结束符,不然后面输出会成乱码
#include<string>
using namespace std;
int main()
{
char a[3];
a[0]='a';
a[1]='b';
a[2]='\0';
string str(a);
cout<<str<<endl;
system("pause");
return 0;
}
字符数组最后一位要结束符,不然后面输出会成乱码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <iostream>
using namespace std;
int main()
{
char a[2];
a[0]='a';
a[1]='b';
string b=a[1]+a[2];
cout<<b<<endl;
system("pause");
return 0;
}
using namespace std;
int main()
{
char a[2];
a[0]='a';
a[1]='b';
string b=a[1]+a[2];
cout<<b<<endl;
system("pause");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询