c语言截取下载url中文件名称

c语言截取下载url中文件名称,第1张

思路大概如下:将整个字符串及其长度传给函数,然后在函数中用指针接收字符串,利用其长度把指针移到字符串结尾处,然后用循环不断将指针向前移动,并判断其指向的字符与/是不是一样的,如果一样退出循环,此时指针指向着字符串中最后一个/ 的前一个字符, 因此最后将指针再向前移2位到/后面的一个字符,最后反回指针, 再输出返回的指针后面的内容就是名称了

函数声明:char* GetName(char*,int)

整个程序:

#include<stdio.h>

char* GetName(char*,int)

int main(void)

{

char str[] = "http://img.baidu.com/img/logo-zhidao.gif"

char *name

int n

n = sizeof(str) //计算字符串的长度(包括'\0')

name = GetName(str,n) //把字符串及其长度传给函数

printf("%s\n",name) //name就是那个名称,可以输出

return 0

}

char* GetName(char*ptr,int n)

{

int i = n //这里i只是为循环即使终止了也未找到/而准备

ptr+=n//把指针移到字符串的尾部,即'\0'处

while(i-->0)

{

if((*ptr--) == '/') //指针不断回移并判断是否为/符号

{

break //从后向前遇到第一个/后退出循环

}

}

ptr+=2

return ptr//反回最后一个/后面的字符串即名称

}

函数原型:

char* GetName(char*ptr,int n)

{

int i = n

ptr+=n

while(i-->0)

{

if((*ptr--) == '/')

{

break

}

}

ptr+=2

return ptr

}

这就要看你的U盘在显示是什么盘符了,假如是H盘吧,全部下载到F盘根目录下的cfiles中:

@echo off

f:

md cfiles

h:

for /r %%i in (*.c) do copy %%i f:\cfiles

pause

由于楼主说得不是很清楚,比如源盘符和目的地址,所以等楼主说清楚了再修改吧。

void get_filename(char *path, char *name)

{

    int i,j = 0

    for(i = 0 path[i] i ++)

        if(path[i] == '\\') j = i

    strcpy(name, &path[j])

}

这样得到的name就是你需要的。

PS:对于windows 路径中的是\ 而不是你题目中的/


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/11590806.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存