作者lazy0813 (菜边巴)
看板C_and_CPP
标题[问题] 撷取档案名称後只想输出前段字元
时间Fri Nov 13 21:53:54 2020
开发平台(Platform): Win10
编译器:Dev-C++
问题(Question):
小弟目前是C初学者,我想请教版上各位先进。
我目前想要把文件中的档案名称撷取前面几个字元建立成一份清单,
但是不知道该怎麽做,目前想法是应该把字串转为字元。
btw,档案名称为:20110827001040.00.led.01.00-03.00h.jpg
想撷取为20110827001040.00.led.01.00-03.00h
这是我的程式码:
/*Program*/
#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <string.h>
int main()
{
FILE *fout;
fout=fopen("output.txt","w+t");
if(fout==NULL){
printf("Fail to open file output!\n");
return:
}
struct _finddata_t fileinfo;
long fHandle;
int i=0;
if((fHandle=_findfirst("*.jpg",&fileinfo))==-1L){
printf("no jpg\n");
return 0;
}
else{
do{
i++;
fprintf(fout,"%s\n",fileinfo.name);
}while(_findnext(fHandle,&fileinfo)==0);
}
_findclose(fHandle);
fclose(fout);
system("pause");
return 0;
}
感谢QQ
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.134.82 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1605275636.A.6DD.html
1F:→ ctrlbreak: fileinfo.name[strlen(fileinfo.name)-4]=0; 11/13 22:24
2F:→ ctrlbreak: 显示前补这行概念是这样,自己完善XD 11/13 22:24
3F:→ nh60211as: 你有两个.jpg在同一个档名要怎麽处理 11/13 22:46
4F:→ loveme00835: 试试看 strstr(), 如果回传结果刚好是 ".jpg" 就是找 11/13 23:31
5F:→ loveme00835: 到副档名, 在结果指标以前的字元就是你想找的部分 11/13 23:31
6F:→ ctrlbreak: 3F说的是 xxxx.jpg.bak.jpg这种情况吗?理论上附档名 11/14 16:55
7F:→ ctrlbreak: 一定是最後一个.之後的名称吧? XD 11/14 16:55
8F:→ ChampYen: strrchr 11/14 17:10
谢谢各位的讨论,後来我用内部回圈把字元一个个拉出来了 後来用strstr还是不能解决QQ
※ 编辑: lazy0813 (140.113.134.82 台湾), 11/25/2020 16:47:23