string

string

一、string

 C++中提供了专门的头文件string(注意不是cstring),来支持string类型,string类定义隐藏了字符串的数组性质,让我们可以像处理普通变量那样处理字符串。 string对象和宁符数组之间的主要区别是:可以将 string对象声明为简单变量,而不是数组。

二、创建 string 对象

string str; //创建一个空的 string对象

string类的设计允许程序自动处理 string的大小,因此,上述代码创建了一个长度为0的 string对象,但是向str中写入数据时,程序会自动调整str的长度。因此,与使用数组相比,使用 string对象更方便,也更安全。

三、初始化 string 对象

C++允许使用C语言风格来初始化string对象:

string str = "hello!";

或者也可以使用C++风格来初始化strng对象:

string str("Hello!");

四、将字符串输入到 string 对象

1、使用cin(遇到空格或换行结束)

string str;
cin >> str;

2、使用 getline() 函数来获取 string 输入(遇到换行结束)

string str;
getline(cin, str);//从输入流中读取一行数据到str

五、获取 string 对象的长度

 在C语言中,使用 strlen 函数获取字符串的长度。在C++中,可以使用 string.size() 函数或 string.length() 函数来获得 string对象的长度。
 这两个方法是完全一样的,并没有区别。 length() 方法是C语言习惯保留的, size() 方法则是为了兼容STL容器而引入的。

string str("Hello, world!");
int len1 = str.length();
int len2 = str.size();

六、复制 string 对象

 在C语言中,使用 strcpy、strncpy 函数来实现字符串的复制。在C+中则方便很多,可以直接将一个 string对象赋值给另一个对象,即:

string str1("Hello world!");
string str2;
str2 = str1;

 由于 string类会自动调整对象的大小,因此不需要担心目标数组不够大的问题。

六、访问 string 字符串的元素

 可以像C语言中一样,将 string 对象当做一个数组,然后使用数组下标的方式来访问字符串中的元素;也可以使用 string.at(index)的方式来访问元素(索引号从0开始):

string str("Hello world!");
cout << str[1] << endl;    //使用数组下标的方式访问 string 字符串的元素
cout < str.at(1) << endl;  //使用at索引访问 string 字符串的元素

七、string 对象的拼接和附加

 在C语言中,使用 strcat、 strncat 函数来进行字符串拼接操作。在c++中也有多种方法来实现字符串拼接和附加操作
1、使用 + 操作符拼接两个字符串:

string str1("hello ");
string str2("world!");
string str3 = str1 + str2;

2、使用 += 操作符在字符串后面附加内容:
 可以使用 += 来在个 string 对象后面附加个 string 对象、字符以及C风格的字符串:

string str1("hello ");
string str2("world!\n");
str1 += str2;
str1 += "nice job\n";
str1 += 'a';

3、使用 string.append() 函数
 可以使用 string.append() 函数来在一个 string 对象后面附加一个 string 对象或C风格的字符串:

string str1 ("hello,world!");
string str2 ("HELLO WORLD!");
str1.append(str2);
str1.append("C string");

4、使用 string.push_back() 函数
 可以使用 string.push_back() 函数来在—个 string 对象后面附加—个字符:

string str("Hello");
str.push_back('a');

八、string 对象的插入和删除操作

1、使用 string.insert() 进行插入操作:

string str("abcdefgh");
str.insert(1, "INSERT");//在1处插入字符串“INSERT”
str.insert(10, 5, 'A');//在10处插入5个字符‘A’

2、使用 string.erase() 进行删除操作:

string str("Hello world!");
str.erase(5, 6); //删除从5号位开始的6个字符

 str为"Hello!"

九、string 对象的比较

 直接用比较符号即可:

string str1("1");
string str2("2");
if (str1 == str2) {
    printf("=");
} else if (str1 < str2) {
    printf("<");
} else {
    printf(">");
}

十、string 子串的获取

 使用 string.substr() 函数来获取子串:

string str("Hello,World!");
string substr = str.substr(3, 5);
cout << substr;

 这段代码的输出结果为:“lo,Wo”

十一、string 对象的查找操作

 使用 string.find() 方法查找字符:

string str1("What are you doing");
string str2("are");
if(str1.find(s1) == -1)//未找到返回-1
    printf("not find");
else//找到
    printf("%d", str1.find(s1));

 输出5。

十二、string 对象的一些其他操作

1、使用 str.empty() 函数判断字符串是否为空:

string str;
if (str.empty()) {
    printf("empty");
}

 string.empty() 函数,若字符串为空,则返回真,否则返回假。
2、使用 str.swap 函数交换两个字符串:

string str1("hello,world!");
string str2("HELLO,WORLD!");
str1.swap(str2);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值