C string/char*/char[]互相转换

来源:互联网 发布:历史上的穿越者 知乎 编辑:程序博客网 时间:2024/04/27 22:00
#include"stdio.h"#include "stdlib.h"#include "string.h"#include "string"#include "c_char_string.h"using namespace std;int main(){    /*char[] -> char* */charS_2_charX();/*char* -> char[]*/charX_2_charS();/*string -> char* */string_2_charX();/*char* -> string */charX_2_string();/*string -> charS */string_2_charS();/*charS -> string */charS_2_string();return 0;}void charX_2_charS(){char *c_x = "nihao";char s_z[8];int s_i = 0;while (*c_x != '\0'){s_z[s_i] = *c_x;s_i++;c_x++;}s_z[s_i] = '\0';printf("\nchar * -> char[]\n");printf("%s\n", s_z);}void charS_2_charX(){char s_z[6] = { 'n','i','h','a','o' ,'\0'};char *c_x ;c_x = (char *)malloc(sizeof(char) * (sizeof(s_z) + 1));if (c_x == NULL){return;}strcpy(c_x, s_z);printf("\nchar[] -> char*\n");printf("%s\n", c_x);}void string_2_charX(){string str_s = "nihao";const char* const_c_x;const_c_x = str_s.c_str();char *c_x = (char *)(const_c_x);printf("\nstring -> char*\n");printf("%s\n", c_x);}void charX_2_string(){char *c_x = "nihao";string str_s;str_s = c_x;printf("\nchar* -> string\n");printf("%s\n", str_s.c_str());}void string_2_charS(){string str_s = "nihao";char s_z[6];int str_len = str_s.length();int i;for (i = 0; i < str_len; i++){s_z[i] = str_s[i];}s_z[i] = '\0';printf("\nstring* -> charS \n");printf("%s\n", s_z);}void charS_2_string(){char s_z[6] = { 'n','i','h','a','o' };string str_s;str_s = s_z;printf("\ncharS -> string\n");printf("%s\n", str_s.c_str());}


c_char_string.h:内容如下

void charX_2_charS();
void charS_2_charX();
void string_2_charX(); 
void charX_2_string();
void string_2_charS();
void charS_2_string();

0 0
原创粉丝点击