输出目录结构(路径打印)
来源:互联网 发布:html5小游戏源码 编辑:程序博客网 时间:2024/06/06 04:03
输出目录结构(路径打印)
- 问题来源:
题目1090:路径打印
思路:
把所有的文件提取出来,存在一个vector里,对其按要求排序输出即可。
代码如下:
#include <stdio.h>#include <string>#include <string.h>#include <vector>#include <algorithm>using namespace std;char str[55];vector<string> v;bool cmp(string a, string b){ //由于char数组不能这么排序,所以使用string return a<b;}int main(int argc, const char * argv[]) { int n; while (scanf("%d", &n)!=EOF&&n!=0) { v.resize(0); //每次循环,需要把v置空 string s; while (n--) { scanf("%s", str); s = str; if (s[s.length()-1]=='\\') { //去掉最后一个/,如aa\dd\cc\变为aa\dd\cc s.erase(s.length()-1, s.length()); } if(find(v.begin(), v.end(), s)==v.end()){ //如果v中没有该字符串,则把该字符串push到v中 v.push_back(s); } while (s.find('\\')!=string::npos) { s.erase(s.find_last_of('\\'), s.length()); //删除最后一个\后面的字符。如 aa\dd\cc 变为aa\dd if(find(v.begin(), v.end(), s)==v.end()){ v.push_back(s); } } } sort(v.begin(), v.end(), cmp); for(int i=0; i<v.size(); i++){ if(v[i].find('\\')==string::npos) //如果字符串中没有\,直接输出 printf("%s\n", v[i].c_str()); //printf不能直接输出string类型,要 s.c_str()转化 else{ for(int j=0; j<=v[i].find_last_of('\\'); j++){ //最后一个\前的输出空格(包含\的位置,也输出空格) printf(" "); } string sub_string = v[i].substr(v[i].find_last_of('\\')+1, v[i].length()); //求字符串,的子串。如:aa\dd\cc变为:cc printf("%s\n", sub_string.c_str()); } } printf("\n"); } return 0;}
0 0
- 输出目录结构(路径打印)
- 递归打印目录结构
- 打印一个目录结构
- Java 打印目录结构
- 打印输出部门结构
- Linux打印文件目录结构
- Python树形打印目录结构
- 打印 目录树,获知源码目录结构
- 六、Linux 目录结构路径
- 递归打印目录的树状结构
- file类_打印树状目录结构
- PHP 打印输出数组内容及结构
- delphi 设置输出目录为相对路径
- Smarty目录结构和子目录路径问题
- eclipse项目目录结构和路径
- 输出目录下的文件树形结构
- Dos命令tree遍历输出目录结构
- 使用 tree 命令格式化输出目录结构
- matlab建立BP神经网络中train函数的参数及学习算法参数
- 《cuda并行程序设计》勘误(3)
- MySQL 百万级分页优化(Mysql千万级快速分页)
- CentOS安装MySql
- hive的数据类型与null的用法
- 输出目录结构(路径打印)
- repo和git的基本用法
- java中的单例设计模式
- Openstack(Mitaka) Swift Keystone V2.0部署方案
- shell命令学习
- BZOJ4563 [Haoi2016]放棋子
- 密码学中的攻击
- 240. Search a 2D Matrix II
- RGB色转灰度色算法