那就从文件名最后开始判断到哪有"."不就行了~~
#include <stdio.h>
#include <string.h>
char *getPost(char *const filename)
{
char *post="NO RESULT"
int len,i
len = strlen(filename)
for(i=len-1i>=0i--)
if(filename[i]=='.')
{
return filename+i+1
break
}
return post
}
void main()
{
char *filename1="abcd.efghi.jkl"
char *filename2="abcdefgh"
printf("The result: %s\n",getPost(filename1))
printf("The result: %s\n"扒明,getPost(filename2))
}
对于filename1,程序输出jkl
对于filename2,程序输出NO RESULT
一楼的方法输出时在后册哪缀前面有个点,而且对无咐纤后缀文件名后导州简码致程序错误。char temp[4]
int len=strlen(argv[2])
char *p=argv[2]+len-1
while(*p!='.' &&p!=argv[2]) p--
if(p==argv[2]) temp[0]='\0'
else strcpy(temp,p+1)
最后temp中就是后缀。
这种方法对无后缀的文件名也有效。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)