| 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是基于一个模板类。 |