#include <iostream>
#include <string>
using namespace std;
void swap(string str[]);
int main()
{
string str[5];
int x;
for(x=0;x<5;x++)
cin>>str[x];
swap(str);//最大的问题就是 char以及string之间的转换
for(x=0;x<5;x++)
cout<<str[x]<<' ';
cout<<endl;
return 0;
}
void swap(string str[])
{
string temp;
int n,m;
for(n=0;n<5;n++)
{
for(m=0;m<5;m++)
{
if(str[n]<str[m])
{
temp=str[n];
str[n]=str[m];
str[m]=temp;
}
}
}
}
这里只要有一个string的数据类型换位char,系统就会报错,
[Error] cannot convert ‘std::string {aka std::basic_string}’ to ‘char’ in assignment
(在文件中不能将string类型转变为char)
char的定义
定义单个字符变量的数据类型,储存空间为1字节,字符值是以ASCII码的形式存放在变量的内存单元之中的。
这样就是说可以储存字母,数字,符号;
如x的十进制ASCII码是120,y的十进制ASCII码是121。
对字符变量a,b赋予’x’和’y’值: a=’x’;b=’y’;
实际上是在a,b两个单元内存放120和121的二进制代码: a 0 1 1 1 1 0 0 0
b 0 1 1 1 1 0 0 1
本程序中说明a,b为字符型,但在赋值语句中赋以整型值。从结果看,a,b值的输出形式取决于printf函数格式串中的格式符,当格式符为”c”时,对应输出的变量值为字符,当格式符为”d”时,对应输出的变量值为整数。
void main()
{1111
char a,b;
a=’x’;
b=’y’;
a=a-32;
b=b-32;
printf(“%c,%c\n%d,%d\n”,a,b,a,b);
}
## string的定义 ##
string是c++标准库中声明的一个字符串类型,用这种类型可以定义变量。
1.定义前:在文本开头加上#include 头文件
2.可以直接使用==,>,<>,!=,=>=,<=等关系运算符来进行字符串的比较,
3.字符串数组:如stirng name[6];//每个元素中存放一个字符串,而不是一个字符;
//补充说明一下,sizeof()输出的是一个类型的字节大小,而不是实际的大小
可以通过 length()得到string的长度;
那么怎么转换string和char
string name=”jeason”;
const char *p=name.c_str();
cout<