什么是std::string...?怎么用?
std::string是标准C++的字符串实现。为了让程序好移植,要用std::string。比如:
方法1:
#include <string>
std::string
方法2:
#include <string>
using namespace std;
string
string类的构造函数:
string(const char *s); //用c字符串s初始化
string(int n,char c); //用n个字符c初始化
此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常 ;
扩展资料
string类的字符操作:
const char &operator[](int n)const;
const char &at(int n)const;
char &operator[](int n);
char &at(int n);
operator[]和at()均返回当前字符串中第n个字符的位置,但at函数提供范围检查,当越界时会抛出out_of_range异常,下标运算符[]不提供检查访问。
const char *data()const;//返回一个非null终止的c字符数组
const char *c_str()const;//返回一个以null终止的c字符串
int copy(char *s, int n, int pos = 0) const;//把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中,返回实际拷贝的数目
string的特性描述:
int capacity()const; //返回当前容量(即string中不必增加内存即可存放的元素个数)
int max_size()const; //返回string对象中可存放的最大字符串的长度
int size()const; //返回当前字符串的大小
int length()const; //返回当前字符串的长度
bool empty()const; //当前字符串是否为空
void resize(int len,char c);//把字符串当前大小置为len,并用字符c填充不足的部分
std::string是标准C++的字符串实现,用法:
要想使用标准C++中string类,必须要包含
#include <string>// 注意是<string>,不是<string.h>,带.h的是C语言中的头文件
using std::string;
using std::wstring;
或
using namespace std;
下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。
扩展资料:
string类的字符操作:
const char &operator[](int n)const;
const char &at(int n)const;
char &operator[](int n);
char &at(int n);
operator[]和at()均返回当前字符串中第n个字符的位置,但at函数提供范围检查,当越界时会抛出out_of_range异常,下标运算符[]不提供检查访问。
const char *data()const;//返回一个非null终止的c字符数组。
const char *c_str()const;//返回一个以null终止的c字符串。
int copy(char *s, int n, int pos = 0) const;//把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中,返回实际拷贝的数目。
参考资料来源:string-百度百科
std::string是标准C++的字符串实现。为了让程序好移植,要用std::string。比如:
方法1:
#include <string>
std::string
方法2:
#include <string>
using namespace std;
string
扩展资料:
显式引入std名空间,std是c++的标准,这个名空间里面定义了很多类,如常用的string等。
如果我们使用名空间std中的类,为了防止和其他的类库名称冲突,就需要在程序中加入语句:using namespace std;
如果我们只是使用其中的一个或者几个类的话,也可以不显示引入该名空间,而是这样:std::string 也可以。
std::string是标准C++的字符串实现
用法如下:
使用标准C++中的String类文件,必须引入头文件:#include <string>
using std::string;
using std::wstring;
或
using namespace std;
接下来就可以使用string或wstring了,它们两分别对应着char和wchar_t。
注意头文件是String,而不是String.h。
扩展资料
C++中String类详解见链接String类详解。
声明一个C++字符串
声明一个字符串变量很简单: string Str;
这样我们就声明了一个字符串变量,但既然是一个类,就有构造函数和析构函数。上面的声明没有传入参数,所以就直接使用了string的默认的构造函数,这个函数所作的就是把Str初始化为一个空字符串。String类的构造函数和析构函数如下:
a) string s; //生成一个空字符串s
b) string s(str) //拷贝构造函数 生成str的复制品
c) string s(str,stridx) //将字符串str内“始于位置stridx”的部分当作字符串的初值
d) string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值
e) string s(cstr) //将C字符串作为s的初值
f) string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值
g) string s(num,c) //生成一个字符串,包含num个c字符
h) string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值
i) s.~string() //销毁所有字符,释放内存
这是C++的写法:std::string
std是命名空间,std::string可以定义一个类型为srting的变量
如果你使用了using namespace std; std::string可以写成string,比如:
string str;
姜鱼彼2450 :答:那是字符串,不算个容器,因为std::string等价于 std::basic_string< char > 实际上是个将原来的char*包装了下,能够自己处理内存分配并且支持更多操作的类型。下标操作[]返回 const char,也就是字符串中的一个字符 插入...
姜鱼彼2450 :答:std是一个命名空间,命名空间是防止名字冲突的一个策略。string是std命名空间中的一个类,即字符串类 引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。引用(reference)是c++对c语言的重要...
姜鱼彼2450 :答:string是指标准模板库中的std::string,这个就是所谓的字符串类,它具有非常强大的字符串处理能力。可以定义不定长度的字符串,且内存的分配与回收均由它自己负责,而不是程序员负责;它支持很多种操作,如对字符串的附加,...
姜鱼彼2450 :答:string是std作用域下的符号,如果使用using namespace std; 就不用在string前边加std::了,否则是错的
姜鱼彼2450 :答:比如 方法1:include <string> std::string 方法2:include <string> using namespace std;string
姜鱼彼2450 :答:CString好像不是关键词,后两个是一个意思,只是用法上稍有差别,Std::string是显示的指明命名空间是Std,后一个没有指明,但是要在程序开头加上using namespace std;两者都是是一个意思。
姜鱼彼2450 :答:使用std命名空间98年以后的c++语言提供一个全局的命名空间namespace,可以避免导致全局命名冲突问题。举一个实例,请注意以下两个头文件:// one.hchar func(char);class String { ... };// somelib.hclass String { ...
姜鱼彼2450 :答:std是个命名空间,而string这个类型是在std这个空间里声明定义的。用string类型来声明一个变量时,就得加上这个命名空间std,连接符就是::否则有可能找不到string在哪里。命名空间的作用就是防止类型名重名时的冲突,就好像...
姜鱼彼2450 :答:。using namespace std;就是指明下面的程序使用std,如果不用这句指明的话就要用std:string(string是std空间中定义的,也可以在全局空间中定义,只要名字空间不一样即可)。否则可以默认名字空间中有std.便不用std:来修饰。
姜鱼彼2450 :答:这种东西要学会自己找 实际上这就是个整型声明,可以把index赋给任何整型而不会报错误或警告。在我的GNU G++实现中 basic_string.h有定义 typedef typename _Alloc::size_type size_type;而 allocator.h中还有 typedef...