Get string middle by C

Key:

void str_get_middlle( char *result, char *str, int start, int end ){

    int i;
    int c;

    for( str += start, i = 0; (start + i ) <= end && (*result++ = *str++) != ‘\0‘; i++ ){
                ;
    }

}

For example:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4
 5 #define STR_LEN 10
 6
 7 void str_get_middlle( char *result, char *str, int start, int end );
 8
 9 int main( int argc, char *argv[] )
10 {
11     FILE *fp = NULL;
12     char *file_path = NULL;
13     char str[STR_LEN] = "", result[ STR_LEN ] = "";
14
15     if( argc == 1){
16         printf( "Too few augument(s)\n" );
17         exit( EXIT_FAILURE );
18     }
19
20     file_path = *(++argv);
21
22     if( (fp = fopen( file_path , "r" )) == NULL ){
23         printf( "Opening file error! path:%s\n", file_path );
24         exit( EXIT_FAILURE );
25     }
26     else{
27         printf( "Opening file [%s] was successfully!\n", file_path );
28     }
29
30
31     while( fgets( str, sizeof( str ),fp) != NULL ){
32 //        printf( "%s", str );
33         str_get_middlle( result, str, 0, 1);
34         printf( "%s-", result );
35
36         str_get_middlle( result, str, 2, 3);
37         printf( "%s-", result );
38
39         str_get_middlle( result, str, 4, 5);
40         printf( "%s\n", result );
41     }
42
43     return 0;
44 }

  Means: 00112233 >> 00-11-22-33.  This code can formt mac address.

时间: 2024-09-27 01:03:19

Get string middle by C的相关文章

深入理解Java之泛型

1. Why ——引入泛型机制的原因 假如我们想要实现一个String数组,并且要求它可以动态改变大小,这时我们都会想到用ArrayList来聚合String对象.然而,过了一阵,我们想要实现一个大小可以改变的Date对象数组,这时我们当然希望能够重用之前写过的那个针对String对象的ArrayList实现. 在Java 5之前,ArrayList的实现大致如下: 1 public class ArrayList { 2 public Object get(int i) { ... } 3 p

笔记:泛型

泛型程序设计意味着编写额代码可以被很多不同类型的对象所重用,并提供强类型校验,避免强制类型转换,并使程序具有更好的可读性和安全性. 定义简单泛型类 一个泛型类就是具有一个或多个类型变量的类,定义格式如下: ????????public class Pair<T> ????????{ ????????????-- ????????} 泛型类引入了一个类型变量T,使用尖括号括起来,并放在类名的后面,泛型类可以有多个类型变量,多个类型变量使用","号分割,在类定义中的类型变量可以

C# 7.0 语言新特性

下面是关于在C#7.0语言中计划功能的说明.其中大部分功能在Visual Studio “15” Preview 4中能运行.现在是最好的试用时期,请记录下你们的想法. C#7.0语言增加了许多的新功能,促使专注于数据消费,简化代码和性能. 或许最大的特征是元组(tuples) ,使得它易于有多个结果,并从而简化代码是以对数据的形状为条件的模式匹配.但也有许多其他的一些功能希望将它们结合起来,让代码运行更高效,更明确,从而获得更多的创造性.如果有哪些运行不是你想要的或者有想改进的功能,在Visu

【Java 面试】面试

一. 笔试题之Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法,其他.有些题来自网上搜集整理,有些题来自传智播客学员面试后的反馈,说真的,少数一些网上的面试题,我真怀疑其是否还有存在价值! 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致. 2.Java有没有goto?

泛型程序设计

在JDK5.0之前: public class ArrayList{ public Object get(int i){...} public void add(Object o){...} ... private Object[] elementData; } 这样实现有两问题.首先,当取得一个值的时候必须进行强制类型转换. ArrayList files = new ArrayList(); ... String filename = (String)names.get(0); 此外,这里没

(十七)泛型程序设计

为什么使用泛型程序设计 泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用. 定义简单的泛型类 一个泛型类就是具有 “一个或多个类型变量” 的类. 以下定义一个泛型类: public class Pair<T> { private T first; private T second; public Pair(){ first=null; second=null; } public Pair(T first,T second){ this.first = first; this.seco

C#7.0中有新特性

以下将是 C# 7.0 中所有计划的语言特性的描述.随着 Visual Studio “15” Preview 4 版本的发布,这些特性中的大部分将活跃起来.现在是时候来展示这些特性,你也告诉借此告诉我们你的想法! C#7.0 增加了许多新功能,并专注于数据消费,简化代码和性能的改善.或许最大的特性就是元组和模式匹配,元组可以很容易地拥有多个返回结果,而模型匹配可以根据数据的“形”的不同来简化代码.我们希望,将它们结合起来,从而使你的代码更加简洁高效,也可以使你更加快乐并富有成效. 请点击 Vi

正则匹配电话号码demo

1 public static String doFilterTelnum(String sParam) { 2 String result = sParam; 3 if (sParam.length() <= 0) 4 return ""; 5 /*电话号码匹配规则"((13\\d{9})|(15[0,1,2,3,5,6,7,8,9]\\d{8})|(18[0,1,2,5,6,7,8,9]\\d{8})|(147\\d{8}))$*"*/ 6 Pattern

Java面试宝典2013版(超长版)

一. Java基础部分......................................................................................................2 1.一个".java"源文件里能否够包含多个类(不是内部类)?有什么限制?.....2 2.Java有没有goto?........................................................................