为了账号安全,请及时绑定邮箱和手机立即绑定

求代码解释,关于C语言在指定目录下显示指定文件怎么操作?

求代码解释,关于C语言在指定目录下显示指定文件怎么操作?

温温酱 2021-06-22 18:15:41
#include...DIR *dp ; struct dirent *dirp ;while( ( dirp = readdir( dp ) ) != NULL) { //跳过'.'和'..'两个目录 if(strcmp(dirp->d_name,".")==0 || strcmp(dirp->d_name,"..")==0) continue; int size = strlen(dirp->d_name); //如果是.wav文件,长度至少是5 if(size<5) continue; //只存取.mp3扩展名的文件名 if(strcmp( ( dirp->d_name + (size - 4) ) , ".mp3") != 0) continue; printf("%s\n", drip->d_name);}始终看不懂的是它怎么就保存下来了后缀名是.mp3的文件?
查看完整描述

1 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

关键是这句:dirp->d_name + (size - 4)
dirp->d_name是一个字符指针,假如现在有 "abc.mp3",
dirp->d_name则指向'a',dirp->d_name+1指向'b'...,那么此时size=strlen("abc.mp3")=7,
dirp->d_name+(7-4)=dirp->d_name+3,dirp->d_name+3指向'.',
此时dirp->d_name+3指向字符串".mp3".然后就去跟常量字符串".mp3"比较,如果不相同就执行下一次循环

查看完整回答
反对 回复 2021-06-27
  • 1 回答
  • 0 关注
  • 475 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信