[C/C++基礎]- 純 C 字串反轉、路徑、檔名和副檔名拆解
本篇要分享-純 C 字串反轉、路徑、檔名和副檔名拆解程式,有興趣的(C/P)同好,歡迎來(C/P)一下哈哈 ^ ^。
#include <iostream> #include <fstream> #include <cstring> #include <cstdio> usingnamespace std; char chrFileName[200],chrPath[200]; char chrFileExt[20]; void GetFileName(char *data); int main() { fstream a; char fg[700]; char chrd1[100],chrd2[100],chrd3[100],chrd4[100],chrd5[100],chrd6[100],chrd7[100],chrd8[100]; a.open("123.txt",ios::in); while(!a.eof()) { a.getline(fg,700); sscanf (fg ,"%[^ || ] || %s || %s %s || %s || %s || %s || %s ",chrd1,chrd2,chrd3,chrd4,chrd5,chrd6,chrd7,chrd8); cout<<chrd6<<"\n"; GetFileName(chrd6); cout<<chrPath<<"\n"; cout<<chrFileName<<"\n"; cout<<chrFileExt<<"\n"; } return 0; } void GetFileName(char *data) { chrPath[0]='\0'; chrFileName[0]='\0'; chrFileExt[0]='\0'; int i,intcount; int j=0; int k=0; char d; intcount=strlen(data); for(i=(intcount-1);i>=0;i--) { if((data[i]!='/')&&(data[i]!='\\')) { d=data[i]; chrPath[j]=d; j++; } else { break; } } chrPath[j]='\0'; for(int i=0;i<j;i++) { if(i<(j-4)) { chrFileName[i]=chrPath[j-i-1]; chrFileName[i+1]='\0'; } else { chrFileExt[k]=chrPath[j-i-1]; k++; chrFileExt[k]='\0'; } } chrPath[0]='\0'; for(i=0;i<(intcount-j);i++) { chrPath[i]=data[i]; } chrPath[(intcount-j)]='\0'; //cout<<chrPath<<"\n"; //cout<<chrFileName<<"\n"; }
|
PS測試資料如下:
130603161 || 社會 || 2013/06/04 12:10 || 60122788 || 100.100.200.165/13CHUTNEWS/20130603/s130603161.mp4 || 天梯上百遊客脫困 1男子遭落石砸頭 || 中視 ||
沒有留言:
張貼留言