#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();