贸易网站模板,企业信用信息查询公示系统河北,wordpress前端投稿上传图片,成品短视频app下载有哪些软件可以用题目描述#xff1a; 有一天您厌烦了电脑上又丑又没用的终端#xff0c;打算自己实现一个 Terminal。具体来说#xff0c;它需要支持如下命令:
1. touch filename#xff1a;如果名为 filename 的文件不存在#xff0c;就创建一个这样的文件#xff0c;如果已经存在同名…题目描述 有一天您厌烦了电脑上又丑又没用的终端打算自己实现一个 Terminal。具体来说它需要支持如下命令:
1. touch filename如果名为 filename 的文件不存在就创建一个这样的文件如果已经存在同名文件的话则不进行任何操作。
2. rm name删除名为 name 的文件。如果不存在这样的文件就不进行任何操作。
3. ls按创建时间为顺序显示当前已经存在的未被删除的所有文件。
4. rename xxx yyy将名为xxx的文件名字改为 yyy 。如果不存在这样的文件或者已经存在文件名为 yyy 的文件则不做任何操作。 这里所有涉及的文件名都仅由大写或者小写的英文字母构成且文件名区分大小写。
输入格式 第一行一个整数 n 表示总共要执行的操作数。接下来 n 行每行一个字符串表示一条命令。
输出格式 对于每个 ls 命令请输出若干行每行一个字符串表示一个文件如果当前并没有任何文件则什么都不输出。请注意本题时限为 3s输入输出规模较大请注意常数因素对耗时的影响我们不会给使用 Java 和 Python 的选手增加额外的运行时间。
样例输入
6
touch yyh
touch yyhtql
rename yyh yyhnb
touch qwq
rename qwq qaq
ls
样例输出
yyhnb
yyhtql
qaq
解题思路 设置一个用于查找名字为name的文件的函数当文件存在时返回文件所在的位置不存在的时候返回-1。利用cin函数进行输入其不能收到空格信息可以利用空格进行分析指令时什么类型根据每个类型的指令做出对应的操作。
代码
#includeiostream
#includestring
using namespace std;int number 0; //记录文件的个数//文件结构体
struct file
{string name; //名字int sign; //存在为1不存在为0
};//查找文件name
int is_essence(string name,file a[])
{for (int i 0;i number;i){if (a[i].name name a[i].sign 1) //找到{return i;}}return -1; //不存在文件name
}signed main()
{file arr[1000]; //创建文件数组//输入int n; //指令个数cin n;for (int i 0;i n;i){string zhiling;cin zhiling;//情况1if (zhiling touch) //创建文件{string name;cin name;if (is_essence(name, arr) -1) //不存在文件名为name的文件{arr[number].name name;arr[number].sign 1;number;}}//情况2else if (zhiling rename) //重命名{string bename, afname;cin bename afname;if (is_essence(afname, arr) ! -1) //存在yyy的文件{continue; //不操作}if (is_essence(bename, arr) ! -1) //存在xxx的文件{arr[is_essence(bename, arr)].name afname; //重命名}}else if (zhiling rm) //删除{string name;cin name;if (is_essence(name, arr) ! -1) //存在xxx的文件{arr[is_essence(name, arr)].sign 0; //删除}}else //输出{for (int i 0;i number;i){if (arr[i].sign 1) //存在{cout arr[i].name endl;}}}}system(pause);return 0;
}