什么是std::string...?怎么用?

   更新日期:2024.05.07

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;

  • 17564236380 :std:string是什么意思是不是也是STL里的容器?
    姜鱼彼2450 :答:那是字符串,不算个容器,因为std::string等价于 std::basic_string< char > 实际上是个将原来的char*包装了下,能够自己处理内存分配并且支持更多操作的类型。下标操作[]返回 const char,也就是字符串中的一个字符 插入...
  • 17564236380 :C++问题 std::string& strOut 什么意思?
    姜鱼彼2450 :答:std是一个命名空间,命名空间是防止名字冲突的一个策略。string是std命名空间中的一个类,即字符串类 引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。引用(reference)是c++对c语言的重要...
  • 17564236380 :C++ string定义字符串与char*定义有何区别?
    姜鱼彼2450 :答:string是指标准模板库中的std::string,这个就是所谓的字符串类,它具有非常强大的字符串处理能力。可以定义不定长度的字符串,且内存的分配与回收均由它自己负责,而不是程序员负责;它支持很多种操作,如对字符串的附加,...
  • 17564236380 :std:string是什么意思?和一般的string所有什么区别
    姜鱼彼2450 :答:string是std作用域下的符号,如果使用using namespace std; 就不用在string前边加std::了,否则是错的
  • 17564236380 :std:string是什么意思?和一般的string所有什么区别
    姜鱼彼2450 :答:比如 方法1:include <string> std::string 方法2:include <string> using namespace std;string
  • 17564236380 :C++中CString,std::string ,string 三者的关系和区别,最好还有他们的用...
    姜鱼彼2450 :答:CString好像不是关键词,后两个是一个意思,只是用法上稍有差别,Std::string是显示的指明命名空间是Std,后一个没有指明,但是要在程序开头加上using namespace std;两者都是是一个意思。
  • 17564236380 :using std::string;是什么意思
    姜鱼彼2450 :答:使用std命名空间98年以后的c++语言提供一个全局的命名空间namespace,可以避免导致全局命名冲突问题。举一个实例,请注意以下两个头文件:// one.hchar func(char);class String { ... };// somelib.hclass String { ...
  • 17564236380 :在c++里面有很多地方用到:: 例如 std::string name 请问这个::是什么...
    姜鱼彼2450 :答:std是个命名空间,而string这个类型是在std这个空间里声明定义的。用string类型来声明一个变量时,就得加上这个命名空间std,连接符就是::否则有可能找不到string在哪里。命名空间的作用就是防止类型名重名时的冲突,就好像...
  • 17564236380 :VC++中"using namespace std"有什么用的
    姜鱼彼2450 :答:。using namespace std;就是指明下面的程序使用std,如果不用这句指明的话就要用std:string(string是std空间中定义的,也可以在全局空间中定义,只要名字空间不一样即可)。否则可以默认名字空间中有std.便不用std:来修饰。
  • 17564236380 :std::string::size_type index 是什么意思?
    姜鱼彼2450 :答:这种东西要学会自己找 实际上这就是个整型声明,可以把index赋给任何整型而不会报错误或警告。在我的GNU G++实现中 basic_string.h有定义 typedef typename _Alloc::size_type size_type;而 allocator.h中还有 typedef...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网