为甚么?rename感觉根没写一样?!
查看原帖
为甚么?rename感觉根没写一样?!
1378709
Yue_Hao楼主2024/8/21 16:51

dalao们,能不能帮我看看这个代码的rename为甚么一直不执行啊?感谢

#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 rename(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{
			temp1 = s.substr( (s.find(' ') + 1), (s.find( (s.find(' ') + 1), ' ') - 1));
			temp2 = s.substr(s.find( (s.find(' ') + 1), ' ') + 1, s.size());
			rename(temp1, temp2);
		}
	}
	return 0;
}

码风有点奇怪,见谅 本人不想直接贴个AC代码,只求问题所在!!! 本人不想直接贴个AC代码,只求问题所在!!! 本人不想直接贴个AC代码,只求问题所在!!!

2024/8/21 16:51
加载中...