c与c++中一些类型的转化总结(持续更新)

原创 2015年07月10日 13:18:43

一般写小代码时,常常是c和c++不分的,但是有时会遇到类型转换的问题,比如输入 string ,然而处理函数的参数是char*型,之间需要转换。收集一下网上资料,总结一下。因为还没有时间去研究stl源码,暂时先用着吧。
一、string转char*
1、std::string::c_str
Returns a pointer to an array that contains a null-terminated sequence of characters
返回一个数组指针,包含‘\0’的,
例子

// strings and c-strings
#include <iostream>
#include <cstring>
#include <string>

int main ()
{
  std::string str ("Please split this sentence into tokens");

  char * cstr = new char [str.length()+1];
  std::strcpy (cstr, str.c_str());

  std::cout<<cstr<<std::endl;

  delete[] cstr;
  return 0;
}

使用strcpy复制字符串。
char * strcpy ( char * destination, const char * source );
这里面str.c_str()返回的是const char* 类型的。
2、std::string::data
Returns a pointer to an array that contains the same sequence of characters as the characters that make up the value of the string object.
同样返回的是const char* 类型的。
例子

// string::data
#include <iostream>
#include <string>
#include <cstring>

int main ()
{
  int length;

  std::string str = "Test string";
  char* cstr = "Test string";

  if ( str.length() == std::strlen(cstr) )
  {
    std::cout << "str and cstr have the same length.\n";

    if ( memcmp (cstr, str.data(), str.length() ) == 0 )
      std::cout << "str and cstr have the same content.\n";
  }
  return 0;
}

二、char* 转string
1、直接复制

    string str;
    //getline(cin,str);
    char * c="test c char to string";
    str=c;

2、std::string::assign
Assigns a new value to the string, replacing its current contents.
其中就有将c-string 赋值的情况
string& assign (const char* s);

    string str;
    //getline(cin,str);
    char * c="test c char to string";
    str.assign(c);

暂时更新到这,下次遇到再更新

版权声明:本文为博主原创文章,未经博主允许不得转载。

C++中不同数据类型之间的相互转换

双精度浮点型,整型,浮点型 字符串 字符串浮点型,整型,长整形,无符号长真型 将整型数目转化为asc编码 atof(将字符串转换成浮点型数): 表头文件 #include 定义函数 dou...
  • xlz669112
  • xlz669112
  • 2017年03月17日 11:34
  • 140

C与C++类型强制转换总结

一、C 风格(C-style)类型强制转换     方法比较简单,如下所示:     TYPE1  A;     TYPE2  B;     A = (TYPE1)B; // 强制转换。     C+...
  • u012654462
  • u012654462
  • 2013年12月09日 19:07
  • 3441

C/C++的数值类型隐式类型转换

C/C++在二进制的基础上抽象了常用的数值类型:char, uchar, short, ushort, int, uint, long, ulong, float, double。每种数值类型能表达的...
  • imturkey
  • imturkey
  • 2015年11月10日 11:14
  • 1190

【七】C++一些新的关键字 -- new、delete、强制类型转换

1、动态内存分配C++中的动态内存分配已经和C语言有了明显区别: C++中通过new关键字进行动态内存申请 C++中的动态内存申请是基于类型进行的 delete关键字用于内存释放   变量申请和释放...
  • CMbug
  • CMbug
  • 2015年08月23日 14:55
  • 1158

MFC中一些类型的转换

亲自测验过(ps:网上很多错的)
  • qq_28799981
  • qq_28799981
  • 2017年05月18日 19:47
  • 69

C++面向对象程序设计中如何判断一个对象的类类型

在C++面向对象程序设计中,有时候需要判断某个对象的类类型,那么可以有下列两种方法: 方法1: 采用 typeid()函数进行判断:(缺点:当存在继承,并且子类指针赋值给父类指针时,此时判断的对象类...
  • master_feng2009
  • master_feng2009
  • 2013年09月19日 18:42
  • 6972

常量指针、指针常量、C++类型转换

一、const应用 1.const关键字,他后面内容的不可修改,一般来说,其修饰的变量不可再进行赋值操作; 2.常量指针 int a = 3; int b = 4; const int* pt = &...
  • zz460833359
  • zz460833359
  • 2015年09月10日 22:05
  • 810

C++的向上类型转换

C++类继承中的向上类型转换和向下类型转换
  • C_crazy_zheng
  • C_crazy_zheng
  • 2016年09月27日 19:58
  • 324

c++实验报告

第一个程序 一、问题及代码 /* *文件名称:Ex1-1.cpp *作    者:李钊 *完成日期:2017年3月12号 *版 本 号:v1.0   *对任务及求解方法的描述部分: ...
  • lizhao666
  • lizhao666
  • 2017年03月12日 17:36
  • 649

c/c++ 函数类型和函数指针类型 详解

c/c++ 中数据结构跟指针真的是很强大 今天解释下 函数类型和函数指针类型 1.函数类型 在C语言中,函数也是一种类型,可以定义指向函数的指针。我们知道,指针变量的内存单元存放一个地址值, 而函...
  • feigegegegegegegeg
  • feigegegegegegegeg
  • 2016年09月08日 11:41
  • 3695
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c与c++中一些类型的转化总结(持续更新)
举报原因:
原因补充:

(最多只允许输入30个字)