C++语言中String的常见用法(一)

 2024-03-21 00:22:12  阅读 0

在C语言中,一般使用字符数组char str[]来存储字符串。 然而,使用字符数组有时会很麻烦,并且由于缺乏经验而容易出错。

为了让程序员更方便地操作字符串,C++在STL中添加了类型,封装了字符串常用的功能,使操作更加方便,不易出错。

如果要使用,需要添加头文件,即#(注意.h和.h是不同的头文件)。

另外,还需要在头文件下面添加一句:using std; 以便可以在代码中使用它。

让我们看看一些常见用途。

1. 定义

定义方法与基本数据类型相同,只需后面跟变量名即可:

string str;

c string头文件_头文件string.h_头文件string的作用

如果要初始化,可以直接给类型变量赋值:

string str = "abcd";

2. 访问内容

(1) 通过下标访问

一般来说,可以像字符数组一样直接访问:

#include 
#include 
using namespace std;
int main()
{
	string str = "abcd";
	for(int i=0;1 < str.length();i++)
	{
		printf("%c",str[i]);	//输出abcd
	}
}

输出结果:

abcd

如果要读取并输出整个字符串,只能使用cin和cout:

#include //cin和 cout在iostream头文件中,而不是stdio.h 
#include
using namespace std;
int main()
{
    string str;
    cin>>str;
    cout<<str;
    return 0;
}

上面的代码对于任何字符串输入都会输出相同的字符串。

那么,真的没有办法输出吗?

其实是有的,就是用c_str()将类型转换成字符数组进行输出。 示例如下:

#include
#include
using namespace std;
int main()
{
	string str = "abcd";
	printf"%s\n",str.c_str());	//将 string 型 str 使用 c_str() 变为字符数组
    return 0;
}

输出结果:

abcd

c string头文件_头文件string.h_头文件string的作用

(2)通过迭代器访问

一般只有(1)可以满足访问要求,但有些函数如()、erase()需要迭代器作为参数,所以还是需要学习如何使用迭代器。

由于它不像其他STL容器那样需要参数,因此可以直接定义如下:

string::iterator it;

这样就得到了迭代器it,并且可以通过*it来访问其中的每一位:

#include 
#include 
using namespace std;
int main()
{
    
	string str "abcd";
    for(string::iterator it = str.begin();it != str.end();it++)
    {
		printf("%c",*it);
    }
	return 0;
}

输出结果:

abcd

最后指出,和 一样,它支持直接对迭代器加减一个数字,比如 str.begin() + 3 是可行的。

标签: string

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码