20240317每日一题题解

20240317每日一题题解

Problem

Solution

提供两种写法,分别用到了string类c风格字符串

string 类是标准库中提供的用于处理字符串的类,避免了传统的 C 语言中使用字符数组来处理字符串时需要考虑的空间分配、长度控制等问题。

c风格字符串实际上就是一个字符数组char[],以字符 '\0' 结尾,用于表示字符串的结束。

Code

string类

#include<iostream>
#include<string>//string是一个字符串库,让我们可以使用string类型
using namespace std;
int main()
{
	string str;//声明一个string类型的变量,叫做str
	
	getline(cin,str);//获取一行输入,并将其存储在str变量中
	
	//注意不能用cin>>str,因为这里一行中可能会有空格。
	//cin>>str遇到空格就会停止读取,适合用来读取单词
	
	reverse(str.begin(),str.end());//使用STL中的reverse函数,将str中的字符进行反转
	
	//反转部分也可以写成:
	/*
	for(int i=0;i<str.size()/2;i++)
	{
		swap(str[i],str[str.size()-i-1]);
	}
	
	*/
	cout<<str;
	return 0;
}

c风格字符串

#include<iostream>
#include<cstring>//为使用c风格字符串的相关函数,比如strlen
using namespace std;

int main()
{
	char a[100000];//定义一个char数组,容量上限是100000
	
	cin.getline(a,100000);//读取一行字符,上限为100000
	
	int length=strlen(a);//用strlen得到字符数组a的长度
	
	for(int i=0;i<length/2;i++)
	{
		swap(a[i],a[length-i-1]);//用swap函数交换两个变量的值
	}
	
	//也可以用reverse(a,a+length);
	
	cout<<a;
	return 0;
}

补充

STL:reverse()

STL(Standard Template Library)是 C++ 标准库的一部分,提供了许多通用的数据结构和算法模板。STL 的设计目标是提供一组通用的数据结构和算法,以便开发者能够更高效地编写 C++ 程序。

STL 中有 std::reverse 函数,用于反转容器中元素的顺序。std::reverse 函数接受两个迭代器作为参数,表示要反转的范围,然后将这个范围内的元素顺序颠倒。

string对于char[]的优势

string 类型的大小的自动的可以动态调整字符串的长度,无需担心字符串长度超出预分配空间;而char[]需要手动定好最大长度,容易出现越界的情况。

string 类型提供了丰富的字符串操作函数,如 findsubstrappend 等,方便进行字符串操作;char[] 需要自行编写字符串操作函数,或者使用标准库中的函数,但使用起来不如 std::string 方便。

string 类型是 STL 中的一部分,可以方便地和其他 STL 容器、算法等一起使用,提高代码的通用性和可维护性。

posted @ 2024-03-18 15:09  Vanilla_chan  阅读(35)  评论(0)    收藏  举报