小白日志:第四天,c++与python的字符串类型

我是真没想到python能够这么懒

先说c++,string类是一个额好像叫模版类?总之它是一个包含很多方法的类,比如length(),比如find()等等等。某种意义上,它很像是数组:有项数,每项的内容是可变的,访问每项需要用s[x]这样的格式。但因为它可变,所以我们在处理时,需要随时注意,如果说对一个string类的对象比如string s进行操作,很有可能会导致s的值改变,比如s.append("so foolish"),这种操作在python中是不会改变s的,但在c++,s已经变了

常用的方法一般是长度啊,查找啊,插入删除啊,清空啊,判断是否为空啊,替换啊,交换啊,获取子串啊,比较字符串靠左的ascii值大小啊什么的。一些逻辑操作和重载+也可以使用,但其意义和数字的操作是两码事。

以上操作:length();find(s/'a')/rfind();insert();earse();clear();empty();replace(x,len," ");swap();substr();compare()

关于一些io流的问题:cin读单一个字符,getline(cin,s)可以让s获取输入的整句话

另外今天弄了个小的测试,还行,也可以发出来看看

#include<iostream>
#include<string>
using namespace std;

int main(){
    string s("je t'aime");
	cout <<" ' " << s << " ' has "<<s.length() <<" characters" << endl;
	s.append(" !");
	cout << s << endl;

	int firstplace = s.find(' ');
	int lastplace = s.rfind(' ');
	string s1(s);
	string s2(s);
	int a = 0;

	if (s1.find(' ') != string::npos) // 如果有空格
	{
		s1.erase(0, s1.find(' ') + 1); // 删除第一个空格之前的所有字符,包括第一个空格
	}
	cout << s1 << endl;

	a = lastplace;
	s2.replace(a+1, s2.length() - 1 - a, "?");
	cout << s2 << endl;

	string t;
	a = firstplace;
	while (a < lastplace) {
		t.push_back(s[a]);
		a++;
	}
	cout << t << endl;
	

	return 0;

}

python的字符串相对简单,即产生即固定,这让其免去了被篡改的风险,但同时,其只能使用一些基础的函数来产生内容上的改变,如果要测量长度什么的涉及指针的,只能用外部函数,比如常见的len()。

附一段很有意思的常见函数实例

s = "je t‘aime !" # 定义字符串
print(s.capitalize()) # 使用capitalize()函数,将第一个字母转换为大写
print(s.lower()) # 使用lower()函数,将所有字母转换为小写
print(s.upper()) # 使用upper()函数,将所有字母转换为大写
print(s.title()) # 使用title()函数,将每个单词的第一个字母转换为大写
print(len(s)) # 使用len()函数,返回字符串的长度
print(s.count('e')) # 使用count()函数,统计字符串中'e'出现的次数
print(s.find('a')) # 使用find()函数,查找字符串中'a'第一次出现的位置
print(s.replace('e', 'x')) # 使用replace()函数,将字符串中的'e'替换为'x'
print(s.split()) # 使用split()函数,将字符串按照空白字符切分为多个子串,并返回一个列表
print('-'.join(s)) # 使用join()函数,将字符串中的每个字符用'-'连接起来,并返回一个新的字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值