C++ string 的使用

string有很多的优点,一个一个来看

1.首先就是它对字符串可以直接比较

#include<iostream>
#include<string>
using namespace std;
string s, t;
int main()
{
	cin >> s >> t;
	cout << (s ==t) << endl;
	return 0;
}

输入的两个字符串不等,判断后便输出了0

相比较于c,确实方便了很多,下面做一个对比

#include<stdio.h>
#include<string.h> 
char m[1000], n[1000];
int main()
{
	int i;
	scanf("%d", &i);
	while (i > 0)
	{
		scanf("%d%d", &m, &n);
		printf("%d\n", strcmp(m, n));
	}
	return 0;
}

2.然后很方便的一个就是可以将字符串直接连接 

#include<iostream>
#include<string>
using namespace std;
string s, t;
int main()
{
	cin >> s>>t;
	cout << s+t << endl;
	return 0;
}

再来对比一下c

#include<stdio.h>
#include<string.h> 
char m[100], n[100];
int main()
{
	scanf("%s%s",m,n);
	strcat(m, n);
	puts(m);
	return 0;
}

 

哈哈,感觉确实没上面那个得劲吧 

3.insert(要插入的位置,要插入的字符串)

#include<iostream>
#include<string>
using namespace std;
string s;
string t;
int main()
{
	cin >> s>>t;
	s.insert(2, t);
	cout <<s<< endl;
	return 0;
}

 

字符串t就插入了字符串s中的第二个位置 

#include<stdio.h>
#include<string.h> 
char m[100], n[100],l[100];
int a=0;
int main()
{
	scanf("%s%s",m,n);
	for(int i=0;i<sizeof(m);i++)
	{
		l[i]=m[i+2];
	}
	for(int i=0;i<sizeof(strcat(m,l));i++)
	{
		int t=l[i+2];
		m[i+2]=n[i];
		n[i]=t;
	}
	printf("%s\n",strcat(m,l));
	return 0;
}

 4.erase(字符串要开始删除的位置,要删除的个数)

#include<iostream>
#include<string>
using namespace std;
string s;
string t;
int main()
{
	cin >> s;
	s.erase(2,2);
	cout <<s<< endl;
	return 0;
}

 5.substr(字符串要开始截取的位置,要截取几个数)

#include<iostream>
#include<string>
using namespace std;
string s;
string t;
int main()
{
	cin >> s;
	cout << s.substr(2, 4) << endl;
	return 0;
}

  5.find(要查找的字符串,从什么位置开始找(不写的话默认从开头开始找))

找不到返回值-1

找到了返回第一次找到的字符串的下标值

#include<iostream>
#include<string>
using namespace std;
string s;
string t;
int main()
{
	cin >> s>>t;
	cout << s.find(t) << endl;
	return 0;
}

*************

#include<iostream>
#include<string>
using namespace std;
string s;
int main()
{
	int x = 10;
	s = to_string(x);//整型转字符
	cout << s << endl;
	int t;
	t= stoi(s);//字符转整型
	cout << t << endl;
	return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值