360-2015暑假实习笔试 给定a,b字符串 求出b相对于a的相对路径

  1. 题目描述:给出一个函数:  
  2. a = “/qihoo/app/a/b/c/d/new.c”;  
  3. b = "/qihoo/app/1/2/test.c";  
  4. 输出b相对于a的相对路径:  
  5. ../../../../1/2/test.c  

本人(龙**)的解法

 

// relativepath.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "stdlib.h"
#include <string>
#define MAXLEN 100
using namespace std;
void relativePath( char* a, char* b)
{
 int al=0;//a中与b不相同的余下路径字符串中'/'的个数
 char* at=a,*bt=b;
 char* t=(char*)malloc(MAXLEN*(sizeof(char)));
 memset(t,0,MAXLEN);
 while(at!=NULL&&bt!=NULL)
 {
  if(*at!=*bt)break;//当两个路径字符串开始不同时退出
  at++;bt++;
 }
 while((*at)!='\0')
 {
  if(*at=='/')al++;//寻找a中与b不相同的余下路径字符串中'/'的个数
  at++;
 } 
 while(al-->0)strcat(t,"../");//b中与a不相同的余下路径字符串连接到t中
 strcat(t,bt);
 printf("b相对于a的相对路径为:\n%s\n",t);//输出相对路径
 free(t);
}
int _tmain(int argc, _TCHAR* argv[])

 //char* a="/a/b/c/d/abc.c";
 //char* b="/a/b/e/f/g/c.c";
 char* a=(char*)malloc(MAXLEN*(sizeof(char)));
 char* b=(char*)malloc(MAXLEN*(sizeof(char)));
 printf("input a path\n");
 scanf("%s",a);
 printf("input b path\n");
 scanf("%s",b);
 relativePath(a,b);
 getchar();
 return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值