【c++】string详解

我能不用char*就不用,而使用C++标准程序库中的string类。string不必担心内存、字符长度等等的问题,并且string作为一个类,它的操作函数能够基本满足我的需要。string使用起来非常简单,我们用=赋值,用==比较是否相同,用+合并字符等等。

使用之前需要包含头文件 #include<string>

1.声明字符,调用构造函数初始化字符串

a.将strA赋值为空字符。

string strA;

b.复制字符串赋初值,将“B"赋值给strB,将strB赋值给strA。

1     string strB("B");
2     string strA(strB);

c.截取字符串,赋初值

 1 #include <string>
 2 #include <iostream>
 3 using namespace std;
 4 int main()
 5 {
 6     string strA("ABCDEF");
 7     string strB(strA, 1);//从1开始截取到最后
 8     cout << strB << endl;
 9     string strC(strA, 1, 2);//从1开始截取2位
10     cout << strC << endl;
11     string strD(strA, 1, 20000);//从1开始截取到最后
12     cout << strD << endl;
13 //     string strE(strA, 10000, 2);//错误
14 //     cout << strE << endl;
15     cin.get();
16     return 0;
17 }

d.将C字符串作为strA的初值???没搞懂CString?

string strA(cstr); //将CString作为s的初值

e.将C字符串前chars_len个字符作为字符串strA的初值。???没搞懂CString?

string strA(chars,chars_len);

f.   string s(num,c) //生成一个字符串,包含num个c字符
g.  string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值
h.  s.~string() //销毁所有字符,释放内存

 2.字符串操作函数

a.    =,assign()   //赋新值

 1 #include <string>
 2 #include <iostream>
 3 using namespace std;
 4 int main()
 5 {
 6     string strA;
 7
 8     strA = "A";
 9     cout << strA << endl;
10
11     strA.assign("B");
12     cout << strA << endl;
13
14     cin.get();
15     return 0;
16 }

b.    swap()   //交换两个字符串的内容

 1 #include <string>
 2 #include <iostream>
 3 using namespace std;
 4 int main()
 5 {
 6     string strA("A");
 7     string strB("B");
 8     cout << strA << endl;
 9     cout << strB << endl;
10
11     strA.swap(strB);
12     cout << strA << endl;
13     cout << strB << endl;
14     cin.get();
15     return 0;
16 }

c.  +=,append(),push_back() //在尾部添加字符

 1 #include <string>
 2 #include <iostream>
 3 using namespace std;
 4 int main()
 5 {
 6     string strA("A");
 7     string strB("B");
 8
 9     strA += strB;//AB
10     strA += "C"; //ABC
11     strA += "DD"; //ABCD
12     cout << strA << endl;
13
14     strA.append("E");//ABCDE
15     strA.append("F");//ABCDEF
16     strA.append("GG");//ABCDEFGG
17     cout << strA << endl;
18
19     strA.push_back(‘H‘);//添加元素  ABCDEFGGH
20     strA.push_back(‘I‘);//ABCDEFGGHI
21     strA.push_back(‘J‘);//ABCDEFGGHIJ
22     strA.push_back(‘J‘);//ABCDEFGGHIJJ
23     cout << strA << endl;
24
25     cin.get();
26     return 0;
27 }

原文地址:https://www.cnblogs.com/KMould/p/12143460.html

时间: 2024-08-03 14:41:11

【c++】string详解的相关文章

HUD5282 Senior&#39;s String 详解(使用DP解决组合数学)

题意:假设两个字符串的最长公共子序列长度为L,求第一个字符串中有多少个长度为L的子序列是第二个字符串的子序列.显然找出一个字符串的所有长度为L的子序列是组合数学问题,如果枚举所有子串的时间复杂度是n! 级的.这里就需要用动态规划来解决.首先用dp[i][j]和num[i][j]分别记录x的前I个字母和y的前j 个字母的最长公共子序列的长度和个数.先求出dp, 然后求num:.求num[i][j]分为两种情况,子序列不选x[i]和选x[i]: 1. 不选x[i]: 如果dp[i][j] == dp

C++ string详解【转】

1.声明一个C++字符串 2.字符串操作函数 2.1 C++字符串和C字符串的转换 2.2 大小和容量函数 2.3元素存取 2.4比较函数 2.5 更改内容 插入(insert).删除(erase).替换(replace).增加字符 2.6提取子串和字符串连接 2.7输入输出操作 2.8搜索与查找 C++ string详解 Nicolai M.Josuttis 译者: 侯捷/孟岩 C++之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否

[读书笔记]C#学习笔记八:StringBuilder与String详解及参数传递问题剖析

前言 上次在公司开会时有同事分享windebug的知识, 拿的是string字符串Concat拼接 然后用while(true){}死循环的Demo来讲解.其中有提及string操作大量字符串效率低下的问题, 刚好自己之前也看过类似的问题, 于是便拿出来记录一下.本文内容: 参数传递问题剖析, string与stringbuilder详解 1,参数传递问题剖析 对于C#中的参数传递,根据参数的类型可以分为四类: 值类型参数的按值传递 引用类型参数的按值传递 值类型参数的按引用传递 引用类型参数的

【Java的String详解】

Java的String类在开发时经常都会被使用到,由此可见String的重要性.经过这次认真仔细的学习了java的String类.发现了自己以前开发中对String使用的不足,特写此博客来记录自己对String的学习总结. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. String实际上是使用字符数组来存储的数据的.从源码可以清晰看到定义的字符数组. Stri

JAVA: String详解

String 类用来存储字符串 ,是不可变的. 1. 基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值. 2. 复合数据类型(类) 当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false.用 str.equals(str2) 方法来比较字符串的值是否相等. 3. len

C++中的string详解

标准库类型string表示可变长的字符序列,为了在程序中使用string类型,我们必须包含头文件: #include <string>  声明一个字符串 声明一个字符串有很多种方式,具体如下: 1 string s;//调用默认构造函数,s为一个空字符串 2 string s(str);//等价于string s = str;调用拷贝构造函数,s是str的备份 3 string s(str,strindex);//将字符串str内始于strindex位置的部分当作s的初始值 4 eg.stri

C++ string详解

转载至http://www.renfei.org/blog/introduction-to-cpp-string.html 运算符重载 + 和 +=:连接字符串 =:字符串赋值 >.>=.< 和 <=:字符串比较(例如a < b, aa < ab) ==.!=:比较字符串 <<.>>:输出.输入字符串 注意:使用重载的运算符 + 时,必须保证前两个操作数至少有一个为 string 类型.例如,下面的写法是不合法的: #include <io

C++ 中string 详解 转载自 博客园

转载自 http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html 标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的 确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的.也许有人会 说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法.其实,可

c++ string详解 assign

assign方法可以理解为先将原字符串清空,然后赋予新的值作替换. 返回类型为 string类型的引用.其常用的重载也有下列几种: a. string& assign ( const string& str ); 将str替换原字串的内容 举例: string testassign = "Hello World"; testassign.assign("Go home"); cout<<testassign<<endl; //

Tcl/Tk string详解

分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net 这里对string命令中的几个子命令使用实例进行一些解释,以便于更加容易理解string命令中的各个子命令,本文仅对几个比较容易掌握的相对简单的string命令进行实例解析.分别是bytelength.length.compare.equal.range.index.first和last几个子命令. 如果对这些命令还不了解,请参考: