亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求代碼解釋,關于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 關注
  • 534 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號