/*@author etangyushan
 *工作中很多时候会和文件名打交道,有时候只需要文件名称,就写了这么一个小程序
 *这个函数实现了把一个文件的绝对路径和后缀去除,只留下文件名的功能
 * */

#include <stdio.h>
#include <stdlib.h>
#include <string.h> //找到最后的slash(/)
int last_mark (char *str, char mark)
{
int site = ;
int count = ;
while (site <= strlen(str))
{
if (str[site++] == mark)
{
count = site;
}
}
return count;
} //找到第一个dot(.)
int first_mark (char *str, char mark, int num)
{
int count = num;
while ()
{
if (str[count++] == mark)
{
break;
}
}
return count;
} /* 从文件全名中把文件名提取出来,有后缀 */
int substr_suffix (char *srcstr, char *decstr, int slash)
{
int i = ;
int size = strlen(srcstr);
for (i=; i<size; i++)
{
decstr[i] = srcstr[slash++];
}
} /* 从文件全名中把文件名提取出来,去除后缀 */
int substr (char *srcstr, char *decstr, int lastslash, int firstdot)
{
int i = ;
//printf("last=%d,first=%d\n", lastslash, firstdot);
//printf("size=%d\n", firstdot-lastslash);
int size = firstdot-lastslash-;
for (i=; i<size; i++)
{
//printf("...%c...\n",srcstr[lastslash]);
decstr[i] = srcstr[lastslash++];
}
} //测试
int main()
{
char *file = "/root/etc/init.d/myte123456789abcedefadfaefsa1234.c";
char filename[] = {};
char filename_nosuffix[] = {}; int lastnum = last_mark (file, '/');
int firstnum = first_mark (file, '.', lastnum); substr_suffix (file, filename, lastnum);
printf ("filename = %s\n", filename); substr (file, filename_nosuffix, lastnum, firstnum);
printf ("filename no suffix = %s\n", filename_nosuffix);
}

linux c实现的提取文件名的小程序的更多相关文章

  1. 开发一个微信小程序项目教程

    一.注册小程序账号 1.进入微信公众平台(https://mp.weixin.qq.com/),注册小程序账号,根据提示填写对应的信息即可.2.注册成功后进入首页,在 小程序发布流程->小程序开 ...

  2. 开发一个微信小程序实例教程

    一.注册小程序账号 1.进入微信公众平台(https://mp.weixin.qq.com/),注册小程序账号,根据提示填写对应的信息即可.2.注册成功后进入首页,在 小程序发布流程->小程序开 ...

  3. 开发一个微信小程序教程

    一.注册小程序账号 1.进入微信公众平台(https://mp.weixin.qq.com/),注册小程序账号,根据提示填写对应的信息即可. 2.注册成功后进入首页,在 小程序发布流程->小程序 ...

  4. 微信小程序开发入门与实践

    基础知识---- MINA 框架 为方便微信小程序开发,微信为小程序提供了 MINA 框架,这套框架集成了大量的原生组件以及 API.通过这套框架,我们可以方便快捷的完成相关的小程序开发工作. MIN ...

  5. Linux shell 之 提取文件名和目录名的一些方法

    很多时候在使用Linux的shell时,我们都需要对文件名或目录名进行处理,通常的操作是由路径中提取出文件名,从路径中提取出目录名,提取文件后缀名等等.例如,从路径/dir1/dir2/file.tx ...

  6. Linux shell 提取文件名和目录名的一些方法(转)

    很多时候在使用Linux的shell时,我们都需要对文件名或目录名进行处理,通常的操作是由路径中提取出文件名,从路径中提取出目录名,提取文件后缀名等等.例如,从路径/dir1/dir2/file.tx ...

  7. Linux shell 提取文件名和目录名

    ${}用于字符串的读取,提取和替换功能,可以使用${} 提取字符串 1.提取文件名 [root@localhost log]# var=/dir1/dir2/file.txt [root@localh ...

  8. 小程序[邮箱提取器-EmailSplider]总结

    1.背景情况     学东西做快的是付诸实践,写这个小程序的目的就是为了综合运用各个知识点,从而提升学习的效果.   2.涉及知识     A.Swing 的布局     B.Swing中,线程访问U ...

  9. 转载:微信小程序源码提取反编译

    转载来源:www.51xuediannao.com/xiaochengxu/019c08cc.html 一.前言 微信小程序源码提取反编译,听起来很屌,其实还是简单的,基本是傻瓜式操作.要想拿到微信小 ...

随机推荐

  1. hadoop2.3安装过程及问题解决

    三台serveryiprod01,02,03,当中01为namenode,02为secondarynamenode.3个均为datanode 3台server的这里提到的配置均需一样. 0.安装前提条 ...

  2. linux中查看python的安装路径

    方法1:whereis python 查看所有python的路径,不止一个 方法2:which python 查看当前使用的python路径

  3. selector + shape

    selector_shape.xml<?xml version="1.0" encoding="utf-8"?> <selector xmln ...

  4. HDU - 1241 Oil Deposits 【DFS】

    题目链接 https://cn.vjudge.net/contest/65959#problem/L 题意 @表示油田 如果 @@是连在一起的 可以八个方向相连 那么它们就是 一块油田 要找出 一共有 ...

  5. 电话聊天狂人 【STL】

    7-2 电话聊天狂人(25 分) 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤10​5​​),为通话记录条数.随后N行,每行给出一条通话记录.简单起 ...

  6. Android4.4 GPS框架分析【转】

    本文转载自:http://blog.csdn.net/junzhang1122/article/details/46674569 GPS HAL层代码在目录trunk/Android/hardware ...

  7. vue-awesome-swiper的使用以及API整理

    一.先说一个看关于vue-awesome-swiper的一个坑 vue项目的package.json中显示的"vue-awesome-swiper": "^2.5.4&q ...

  8. npm使用淘宝镜像安装包

    npm使用registry这个属性指定仓库,因此配置这个属性即可.修改npm配置属性的几种方法详见官方文档. 这里只贴出修改registry的方法,以下三种任意一种即可: 修改~/.npmrc文件(没 ...

  9. matlab之结构体数组struct

    以下内容来自于:https://blog.csdn.net/u010999396/article/details/54413615/ 要在MALTAB中实现比较复杂的编程,就不能不用struct类型. ...

  10. jQuery选项卡tabulous

    jQuery选项卡tabulous,jQuery,选项卡,tab标签切换代码,扁平设计,jQuery选项卡tabulous是一款支持Scale.Slide.Scale Up.Flip等效果jquery ...