c语言去掉绝对路径,提取文件名。 5
补充程序,去掉绝对路径,提取文件名。#include"stdafx.h"#include<stdio.h>intmain(){charori[100]="E:\\my_C...
补充程序,去掉绝对路径,提取文件名。
#include "stdafx.h"
#include <stdio.h>
int main()
{
char ori[100] = "E:\\my_C_program\\first_exam\\array\\test.c";
puts(ori);
/*** 请将程序补充完整,去掉绝对路径,输出文件名test.c ***/ 展开
#include "stdafx.h"
#include <stdio.h>
int main()
{
char ori[100] = "E:\\my_C_program\\first_exam\\array\\test.c";
puts(ori);
/*** 请将程序补充完整,去掉绝对路径,输出文件名test.c ***/ 展开
2个回答
展开全部
//未调用任何库函数的版本(除了puts)
//#include"stdafx.h" //如果不能编译,取消这行的注释
#include<stdio.h>
int main()
{
char ori[100] = "E:\\my_C_program\\first_exam\\array\\test.c";
int i=0,j;
for(;ori[i+1];i++) ;
for(;i>0 && '\\'!=ori[i];i--) ;
if(0!=i)
{
for(j=0,i++;ori[j]=ori[i];i++,j++) ;
}
puts(ori);
return 0;
}
//#include"stdafx.h" //如果不能编译,取消这行的注释
#include<stdio.h>
int main()
{
char ori[100] = "E:\\my_C_program\\first_exam\\array\\test.c";
int i=0,j;
for(;ori[i+1];i++) ;
for(;i>0 && '\\'!=ori[i];i--) ;
if(0!=i)
{
for(j=0,i++;ori[j]=ori[i];i++,j++) ;
}
puts(ori);
return 0;
}
展开全部
声明一个足够长的名为fn的char型数组,调用库函数strrchr在含路径的全文件名中找到文件名前的'\',将其后的文件名拷贝到fn中即可。举例代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "string.h"
int main(void){
char fn[30],*p;
char pathname[80]="e:\\1\\2\\abc.dat";
//上句假设以某种方式获得的全文件名在pathname中,"..."中只是举例
strcpy(fn,(p=strrchr(pathname,'\\')) ? p+1 : pathname);
//上句函数第2实参这样写以防止文件在当前目录下时因p=NULL而出错
printf("%s\n",fn);//打出来看看
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "string.h"
int main(void){
char fn[30],*p;
char pathname[80]="e:\\1\\2\\abc.dat";
//上句假设以某种方式获得的全文件名在pathname中,"..."中只是举例
strcpy(fn,(p=strrchr(pathname,'\\')) ? p+1 : pathname);
//上句函数第2实参这样写以防止文件在当前目录下时因p=NULL而出错
printf("%s\n",fn);//打出来看看
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询