string转换成char*

string 是c++标准库里面其中一个,封装了对字符串的操作
把string转换为char* 有3中方法:
1.data
如:
string str="abc";
char *p=str.data();
2.c_str
如:string str="gdfd";
    char *p=str.c_str();
3. copy
比如
string str="hello";
char p[40];
str.copy(p,5,0); //这里5,代表复制几个字符,0代表复制的位置
*(p+5)=‘\0‘; //要手动加上结束符
cout < <p;

示例程序:

#include<iostream>
#include<string>
using namespace std;

int main()
{
string line;
getline(cin,line);
char str[20];
int size=line.size();
line.copy(str,line.size(),0);
//char str[20]="liuyanbo";
char upper[20];
for(int i=0;i<size;++i)
{
   //cout<<static_cast<char>(toupper(str[i]));
   upper[i]=static_cast<char>(toupper(str[i]));
}
upper[i]=‘\0‘;
cout<<upper<<endl;
return 0;
}

string转换成char*

时间: 2024-10-09 19:35:40

string转换成char*的相关文章

C++ 将string转换成char*字符串

我们经常会使用C和C++的混合编程,在某些情况下,需要将C++的string,转换成char* 的字符串.下面说两种可行的方法,作为总结. 1. data(); 如: string str="abc"; char*p=(char*)str.data(); 2.c_str(); 如: string str="adcd"; char *p=(char*)str.c_str(); 暂时就记这两种吧,简单而且差不多够用了. 版权声明:本文为博主原创文章,未经博主允许不得转载

将string转换成char型的一般方法

C++文件读取中: infile in: in.open("file.dat",ios::in); 这样是可以的. 但是 string a; a="file.dat" in.open(a,ios::in) 这样的格式编译器将要报错,原因是C++不能识别字符串的文件名. 有时候需要自定义的文件名,就要把string类型转换成char型的. 比如: string a="hello world"; char *b=new char[20]; strcp

将string转换成char* (转)

原文:http://blog.sina.com.cn/s/blog_786ce14d01014lpr.html string 是c++标准库里面其中一个,封装了对字符串的操作把string转换为char* 有3中方法:1.data如:string str="abc";char *p=str.data();%这行应更正为char*p=(char*)str.data();,引自贴内网友的回复 2.c_str如:string str="gdfd";    char *p=

将string转换成char*

把string转换为char* 有3种方法: 1.data 如: string str="abc"; char *p=str.data(); 2.c_str 如:string str="gdfd"; char *p=str.c_str(); 3. copy 如: string str="hello"; char p[40]; str.copy(p,5,0); //这里5,代表复制几个字符,0代表复制的位置 *(p+5)='\0'; //要手动加上

QString、std::string转换成char*

#include <iostream> #include <QtCore/QString> int main() { QString str_Q("cupcupy北京"); int j = str_Q.length(); //11,一个汉字算两个字符 std::string str_string = str_Q.toStdString(); int i = str_string.length();//11,字符串长度不包括结尾的'/0' //c_str()返回的

C# string转换成DateTime?(字符串转换成可空日期类型)

[转载] 作者:十有三 出处:http://shiyousan.com/post/ca4a6413-ecb4-4237-baf6-e88e616d18fc PS:此文主要讲述的是可空日期类型和字符串之间的转换,正常类型转换看这篇文章:字符串string类型转换成DateTime类型 最近项目中遇到以前一直困扰的问题,就是如何将string转换成DateTime?这种可空日期类型.以前总是通过编写一堆逻辑代码来进行转换,但是写这些代码感觉非常繁琐.后在网上浏览相关资料,使用NullableConv

CString 转换成 char *

写程序时 要实现CString转换成 char *,晚上找了一些方法,可总是会有错误,不是我想要的. 比如下面这两种转换格式: 1. <span style="white-space:pre"> </span>CString strItem("1238djj"); char *chItem1; chItem1 = (LPSTR)(LPCTSTR)strItem1; 2. <span style="white-space:pre

将u_char *转换成char*类型的十六进制数据

在PF_RING安装包中摘取的代码,,感觉比较不错.自己注释的 char* etheraddr_string(const u_char *ep, char *buf) { u_int i, j; char *cp; cp = buf; if((j = *ep >> 4) != 0) //ep[0]的高4位赋给j, 转换成十六进制,赋给cp[0] *cp++ = hex[j]; else *cp++ = '0'; *cp++ = hex[*ep++ & 0xf];  //ep[0]的低4

JAVA中怎么将string转换成date

比如说String date="1987-10-10";我想给他转换成DATE类型的,而且输出后还是"1987-10-10"这个格式的,不是带英文的那些东西 String -> Date 1 2 3 java.text.SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd"); String s= "2011-07-09 ";  Date date