第一周C++初步——标准C++String类


前言

第一学期学习了C语言 ,接下来学习C++,两者相似,又有不同,接下来给大家分享这周我对C++的初步了解


提示:要想真正掌握标准C++String类,必须学会string类的构造,字符操作,特性描述,输入输出操作,赋值,连接,比较,子串,交换,等一系列操作,一步一步来,就可以.

一、标准C++String类是什么?

string类是<string> 头文件定义的由一个变量类型、一个宏和各种操作字符数组的函数,等同于C语言里的<string.h>头文件 错了措了
string属于STL中标准模板库里面的函数
string与string.h不同,前者是类的头文件,后者则是C语言中字符串操作的头文件
虽说是与C语言对比学习可以好理解一点,但还是要分开本质区别,这样才能学好新的这一语言

二、使用方法

1.C++基本语句

要想使用标准C++中string类,首先必须要包含它的基本框架
(可以对比C语言来学习)

#include<iostream>  //#include<stdio.h>
#include<string>    //#include<sreing.h>
using namespace std;  //打开标准命名空间

int main() 
{
	//代码块
	//代码块
	
	return 0;
}

2.string类的函数和操作:

1.string类的输入函数:

string str;
//或下面一种先定义再输入
cin>>str;
getline(cin,str);

2.string库函数

//字符串长度:length();
	string s("My ledal state is AK");
 	cout<<s.length();

//字符个数:size();
	string s("My ledal state is AK");
	cout<<s.size();

//输出内存大小:capacity();
	string s("My ledal state is AK");
	cout<<s.capacity();

//修改内存大小:reserve();
	s.reserve(50);
 	cout<<s.capacity()<<endl;

//重新设置字符个数:resize();
	s.resize(8);
 	cout<<s.capacity()<<endl;
 	cout<<s.length()<<endl;
 	cout<<s.size()<<endl;
 	cout<<s<<endl;

//输出单个字符函数:at();
	string s("My ledal state is AK");
 	cout<<s.at(1)<<endl;

//修改单个字符函数:at();
	string s("My ledal state is AK");
	s.at(1)='t';
	cout<<s.c_str()<<endl;

//输出全部字符:c_str
	string s1="The last two questions";
	cout<<s1.c_str();

//插入函数
	//任意位置插入:insert();
		s1.insert(0,"            ");
	 	cout<<s1<<endl;
	//末尾插入/添加:append();
		s.append(s1);
		cout<<s<<endl;

//指定函数:assign();  (输出前五个字符)
	s1.assign("That is true",5);
 	cout<<s1<<endl;

//比较字符串大小:compare();
	//整串比较(同C语言一样如果str1>str2,返回 1,str1=str2返回 0 ,str1<str2返回 -1)
		string str1="abcd";
	 	string str2="bcdefg";
	 	cout<<str1.compare(str2)<<endl;
	//部分与整串比较(str1的前两个与str2比较)
		string str1="abcd";
	 	string str2="cdefg";
	 	cout<<str1.compare(12,str2)<<endl;
	//部分与部分比较(str1的前两个与str2的前两个比较)
		string str1="abcd";
	 	string str2="cdefg";
	 	cout<<str1.compare(12,str2,12)<<endl;
 
//复制函数:copy();
	char a[10]={0};
 	str1.copy(a,4,0);
 	//4表示选取的个数,0是位置下标
 	cout<<a<<endl;


另外还有
查找函数:find();
返回子串函数:substr();
删除字符:erase;
替换字符:replace;
这些都是相对于C语言来讲在C++上更能体现出来的快捷方便的函数,合理运用会使程序编写更加得心应手

3.string库函数整体代码实现

#include<iostream>
#include<string>
using namespace std;
int main()
{
	 cout<<"求串的长度和大小:\n";
	 string s("My ledal state is AK.");
	 cout<<s.length()<<endl;
	 cout<<s.size()<<endl;
	 cout<<"\n";
	 
	 cout<<"求容量:\n";
	 cout<<s.capacity()<<endl;
	 cout<<"\n";
	 
	 cout<<"扩容:\n";
	 s.reserve(50);
	 cout<<s.capacity()<<endl;
	 cout<<"\n";
	 
	 cout<<"修改容量:\n";
	 s.resize(18);
	 cout<<s.capacity()<<endl;
	 cout<<s.length()<<endl;
	 cout<<s.size()<<endl;
	 cout<<s<<endl; 
	 cout<<"\n";
	 
	 cout<<"输出/修改单个字符:\n";
	 cout<<s.at(1)<<endl;
	 s.at(1)='O';
	 cout<<s.c_str()<<endl; 
	 cout<<"\n";
	 
	 cout<<"全输出:\n";
	 string s1="The last two questions";
	 cout<<s1.c_str();
	 cout<<"\n";
	 
	 cout<<"任意位置插入:\n";
	 s1.insert(0,"          ");
	 cout<<s1<<endl;
	 cout<<"\n";
	 
	 cout<<"末尾插入:\n";
	 s.append(s1);
	 cout<<s<<endl;
	 cout<<"\n";
	 
	 cout<<"指定输出:\n";
	 string s2;
	 s2.assign("That is true",5);
	 cout<<s2<<endl;
	 cout<<"\n";
	 
	 cout<<"比较函数:\n";
	 string str1="abcd";
	 string str2="cdefg";
	 cout<<str1.compare(str2)<<endl;
	 cout<<"\n";
	 
	 cout<<"复制函数:\n";
	 char a[10]={0};
	 str1.copy(a,4,0);
	 cout<<a<<endl;
	 cout<<"\n";
	 
	 cout<<"查找函数:\n";
	 cout<<(int)s.find("question")<<endl;
	 cout<<(int)s.find(s1,2)<<endl;
	 cout<<"\n";
	  
	  cout<<"查找字符:\n";
	 cout<<(int)s.find('t')<<endl;
	 cout<<"\n";
	  
	  cout<<"返回子串:\n";
	 cout<<s.substr(38,46);
	 cout<<"\n";
	  
	  cout<<"删除部分子串:\n";
	 s.erase(18,8);
	 cout<<s<<endl;
	 cout<<"\n";
	  
	 cout<<"最终结果为:\n"; 
	 s.replace(0,2,"To");
	 cout<<s<<endl; 
	}

总结

1.学习C++String类首先要对C++的 基本语法掌握得当,如基本的预处理命令 ,操作符优先级 ,转义字符 ,ASCII码表 ,基本数据类型 和关键字等;
2.说到底C++String类只不过是一个标准函数库,需要学习里面各种函数的使用,多刷题就可以熟练;
3.这只是第一周刚开始,不必着急,基于吧C语言,C++并不难,只是换一下关键字和语法语句而已,有一点时间来适应就可以了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值