到底哪里出问题了啊?
查看原帖
到底哪里出问题了啊?
1378709
Yue_Hao楼主2024/8/23 11:23

上次那个帖子无人问津,今天再发一遍吧,这个代码为什么rllname函数就是没法调用呢?就是没有效果,dalao们帮我看看哪里的问题啊?

#include <bits/stdc++.h>
#define ll unsigned long long
using namespace std;
string wj[10005];
bool pd(string x){
	for(ll i = 0; wj[i] != ""; i++) if(wj[i] == x) return false;
	return true;
}
inline void touch(string name, ll index){
	if( pd(name) ) wj[index] = name;
	return;
}
inline void ls(){
	for(ll i = 0; wj[i] != ""; i++) if(wj[i] != "!d!e!l!e!t!e") cout << wj[i] << endl;
	return;
}
inline void rm(string name){
	for(ll i = 0; wj[i] != ""; i++){
		if( wj[i] == name ){
			wj[i] = "!d!e!l!e!t!e";
			break;
		}
	}
	return;
}
inline void rllame(string name1, string name2){
	for(ll i = 0; wj[i] != ""; i++){
		if(wj[i] == name1){
			wj[i] = name2;
			break;
		}
	}
	return;
}
int main(){
	ll n, wjix = 0;
	string s, temp, temp1, temp2;
	cin >> n;
	cin.ignore();
	while( n-- ){
		getline(cin, s);
		temp = s.substr( 0, s.find(' ') );
		if(temp[0] == 't'){
			temp1 = s.substr(s.find(' ') + 1, s.size());
			touch(temp1, wjix);
			wjix++;
		}else if(temp[0] == 'l'){
			ls();
		}else if(temp[0] == 'r' && temp[1] == 'm'){
			temp1 = s.substr(s.find(' ') + 1, s.size());
			rm(temp1);
		}else if(temp[0] == 'r' && temp[1] == 'e'){
			temp1 = s.substr( (s.find(' ') + 1), (s.find( (s.find(' ') + 1), ' ') - 1));
			temp2 = s.substr(s.find( (s.find(' ') + 1), ' ') + 1, s.size());
			rllame(temp1, temp2);
		}
	}
	return 0;
}

不想直接贴个AC代码,谢谢

2024/8/23 11:23
加载中...