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 ' ; // 要手动加上结束符
把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 <cstring>
#include <cmath>
#include <stdio.h>
using namespace std;
void printString(string strWavName)
{
FILE *pWavFd;
/* must be const char, or else compile error */
const char *pcStr;
/* change string to char * type */
pcStr = strWavName.data();
//pcStr = strWavName.c_str();
pWavFd = fopen(pcStr, "rb");
cout << "name: " << strWavName << endl;
/* print string size value */
cout << "size: " << strWavName.size() << endl;
fclose(pWavFd);
}
int main(int argn, char **argv)
{
printString("./redSun.wav");
return 0;
}