char以及string的转换

#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<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值