C++ string 的使用

  • Post author:
  • Post category:其他


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;
}



版权声明:本文为WJXABC3711原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。