HzuMomoc


私信TA

用户名:932521665

访问量:33481

签 名:

记得在搬砖中多摸鱼!!!

等  级
排  名 87
经  验 8796
参赛次数 8
文章发表 68
年  龄 0
在职情况 在职
学  校 贺州学院
专  业

  自我简介:

解题思路:
使用string类能减少大量的比较代码,

在操作增删改查时,可以把一个字符串看作一个字符来操作为什么可以这样想

请看

附带string知识:

1.png

2.png


代码用到的知识已标出。


不多说看代码。



本人蒟蒻一枚。有什么不懂可以私信我。

注意事项:
删除时要覆盖、插入时要往后移动


参考代码:

#include <bits/stdc++.h>
using namespace std;
const int N = 1e3+1;
string s[N];
int cnt=0;// 记录个数 
int main (){
	string oper;
	while(cin>>oper){
		/*插入*/
		if(oper=="insert"){
			int n;string in;
			cin>>n;
			cin>>in;
			for(int i=cnt+1;i>n;i--){//往后移动,可以xi
				s[i] = s[i-1];
			}
			cnt++;
			s[n] = in;
		}
		else if (oper=="show"){
			for(int i=1;i<=cnt;i++){
				cout<<s[i]<<" ";
				
			}
			cout<<endl;
		}
		/*删除前要找到字符串的位置*/
		else if(oper=="delete"){
			string in;
			cin>>in;
			int pos;
			
			for(int i=1;i<=cnt;i++)//找到删除的位置
				if(s[i]==in){
					pos = i;
					break;
				}
			for(int i=pos;i<cnt;i++){
			//前往移动,覆盖 是不是很像在一个数组内删除一个数?
				s[i] = s[i+1];
			}
			cnt--;
		}
		else if(oper == "search"){//查找最简单了
			string in;
			int pos;
			cin>>in;
			for(int i=1;i<=cnt;i++)
				if(s[i]==in){
					pos = i;
					break;
				}
			cout<<pos<<endl;
		}
	
	}
	return 0;
}


 

0.0分

3 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答

代码解释器

  评论区