求相对路径(来自2015年360实习笔试题)

来源:互联网 发布:淘宝男皮鞋 编辑:程序博客网 时间:2024/06/05 00:15

题目:

写一个函数,根据两文件的绝对路径算出相对路径。如a="/qihoo/app/a/b/c/d/new.c",b="/qihoo/app/1/2/test.c',那么b相对于a的相对路径是"../../../../1/2/test.c"

代码:

#include<stdio.h>#include<stdlib.h>void findRelativePath(char *str1 , char *str2){char *p = str1 , *q = str2;char buf[1024] = {0};while(*str1 != '\0' && *str2 != '\0'){if(*str1 == *str2){if(*str1 == '/'){p = str1;q = str2;}str1++;str2++;}else{str1 = p + 1;while(*str1 != '\0'){if(*str1 == '/')strcat(buf , "../");str1++;}str2 = q + 1;strcat(buf , str2);break;}}printf("The relative path is %s\n" , buf);}int main(){char str1[] = "/qihoo/app/a/b/c/d/new.c";char str2[] = "/qihoo/app/1/2/test.c";findRelativePath(str1 , str2);return 0;}


0 0
原创粉丝点击