上次那个帖子无人问津,今天再发一遍吧,这个代码为什么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代码,谢谢