string char const char之间的转换


#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;
int main(int argc,char* argv[])
 {
    char *x="123456";
    cout<<"char x="<<"\""<<"123456"<<"\""<<endl;
    string s=x;
    char xp[sizeof(s)];
    strcpy(xp,s.c_str());
    char const *p=s.c_str();
    if(argc==2){string str=argv[1];cout<<str<<endl;}
    else {cout<<"string s=x;printf(\"%s\\n\",x):";printf("s=%s\n",x);}
    cout<<"string s=x;cout<<s:s="<<s<<endl;
    printf("printf(\"%%s\",s.c_str()):s.c_str()=%s\n",s.c_str());
    cout<<"change string to char:\nchar xp[sizeof(s)];\nstrcpy(xp,s.c_str());\n";
    printf("printf(\"%%s\",xp):xp=%s\n",xp);
    cout<<"change string to const char:char const *p=s.c_str():p="<<p<<endl;
    system("pause");
    return 0;
}

stringconst char*之间转换可以使用不同的方法。其中一种方法是使用strcpy_s或strncpy_s函数将string转换char[]。 具体步骤如下: 1. 使用c_str()函数将string转换const char*类型。 2. 声明一个char[]类型的数组来存储转换后的字符。 3. 使用strcpy_s或strncpy_s将const char*复制到char[]数组中。 另外,如果要将const char*转换string,可以直接使用const char*进行赋值,或者使用string的构造函数进行转换。 请注意,转换过程中要确保目标数组的大小足够大来容纳源字符串的长度,并且要避免内存溢出的情况。 综上所述,可以使用strcpy_s或strncpy_s函数将string转换char[],以及将const char*转换string。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [const char* 与 string 的理解详解](https://blog.csdn.net/weixin_38606457/article/details/116603782)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [stringconst char*类型的相互转化问题](https://blog.csdn.net/m0_50674480/article/details/117929273)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值