string和char *的转化

来源:互联网 发布:downfile.php 编辑:程序博客网 时间:2024/04/27 21:28

问题:上次的问题还遇到了string类型和char *的转化的问题:

 

回答:

         因为string类型的变量 有一个方法c_str()可以直接的到const char *,所以如果想得到const char *就可以直接用这个方法了,举例如:

  string str1="eh1.txt";
 const char *temp=str1.c_str();
 printf("%s/n",temp);

 但是如果要得到char *怎么办?这个时候可以用着用方式:

#include <string>
#include <stdlib.h>
#include <stdio.h>
using namespace std ;
void main()
{  
  string str1="eh1.txt";
  char *buf=new char[str1.length()+1];
  if(buf)
   strcpy(buf,str1.c_str());
    printf("%s/n",buf);
}

可以先获取字符串的长度,然后应用strcpy()来获得这种方法是比较实用的。