string 用法及注意事项
string是C++标准库的一个重要的部分,主要用于字符串处理。可以使用输入输出流方式直接进行string操作,也可以通过文件等手段进行string操作。同时,C++的算法库对string类也有着很好的支持,并且string类还和c语言的字符串之间有着良好的接口。
#include <string>
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
string str = "Hello World";
//可以用cout直接输出
cout << "cout str is: " << str << endl;
// string 转换为 char*
const char* p = str.c_str();
//用Printf 输出时需 string 转换为 char*
printf("printf str is: %s\n", p);
return 0;
}
- cout 可直接输出 string 类的对象的内容;
- 使用 c_str() 方法转换 string 类型到 char* 类型时,需要为char添加 const 关键字;
- printf() 函数不能直接打印 string 类的对象的内容,可以通过将 string 转换为 char* 类型,再使用 printf() 函数打印。
char、char[]转换为string* 将 char * 、char[] 转换为 string 类型时,直接进行赋值操作,将 char * 、char[] 的变量赋值给 string 对象即可。
说明:这里所说的“赋值”操作,实际上是将 char*、char[] 定义的字符串的首地址赋值给 string 对象了。
#include <string>
#include <iostream>
using namespace std;
int main()
{
const char* name = "zhangwuji";// 如果不加const 将报错:"const char *" 类型的值不能用于初始化 "char *"
char Camp[] = "alliance";
string strName;
string strCamp;
strName = name;
strCamp = Camp;
cout << "strName is: " << strName << endl;
cout << "strCamp is: " << strCamp << endl;
return 0;
}
首先应该包含头文件
并且string不是window的产物,是属于标准c++中的内容,比char*方便使用,所以推荐作为字符串处理的数据类型。
易犯错误的地方是:在文件的开头地方应使用:using namespace std;避免了其它地方的不同定义,string很容易导致命名冲突。
string 非原始字符串即不以’\0’作为结束符,所以对于strlen 这些操作都是错误的, 只能通过string的size来计算大小,事实上string是基于一个模板类。
|