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