程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> codeforces C. Cd and pwd commands 實現命令行

codeforces C. Cd and pwd commands 實現命令行

編輯:C++入門知識

實現一個可以改變路徑命令 cd

和顯示路徑命令 pwd

的一個程序

例子:

input
7
pwd
cd /home/vasya
pwd
cd ..
pwd
cd vasya/../petya
pwd
output
/
/home/vasya/
/home/
/home/petya/
原題:

http://codeforces.com/problemset/problem/158/C


考點:

操作字符串 -- 使用C++特別難的,好像java和C#都特別容易,不過使用C++可以清楚每一個細節的操作

這裡直接使用string容器來實現了

#include 
#include 
using namespace std;

void Cdandpwdcommands()
{
	int n;
	cin>>n;
	string path(1, '/');
	string command;
	while (n--)
	{
		cin>>command;
		if ("cd" == command)
		{
			cin>>command;
			if (command[0] == '/')//還要注意絕對路徑
			{
				path = "/";
			}
			int i = 0;
			if (command[0] == '/') i++;
			while (i < (int)command.size())
			{
				for (; i < (int)command.size() && '.' != command[i]; i++)
					path.push_back(command[i]);

				if (i+1 < (int)command.size() && command[i+1] == '.')
				{
					if (path.size() > 1 && path.back() == '/') 
						path.pop_back();

					while (path.size() && path.back() != '/')
						path.pop_back();

					i += 2;
					if (i < (int)command.size() && command[i] == '/')
						i++;
				}
				else if (i < (int)command.size())
				{
					path.push_back(command[i++]);
				}
			}
			if (path.empty() || path.back() != '/') path.push_back('/');
		}
		else if ("pwd" == command)
		{
			cout<


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved