`
kofsky
  • 浏览: 201711 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

精致的C Code

阅读更多
  1. /* strlen:  return length of s */
  2.    int strlen(char s[])
  3.    {
  4.        int i;
  5.        while (s[i] != '\0')
  6.            ++i;
  7.        return i;
  8.    }

 

  1.  /* strlen:  return length of string s */
  2.    int strlen(char *s)
  3.    {
  4.        int n;
  5.        for (n = 0; *s != '\0', s++)
  6.            n++;
  7.        return n;
  8.    }

 

  1. /* strcpy:  copy t to s; array subscript version */
  2.    void strcpy(char *s, char *t)
  3.    {
  4.        int i;
  5.        i = 0;
  6.        while ((s[i] = t[i]) != '\0')
  7.            i++;
  8.    }
  9.    /* strcpy:  copy t to s; pointer version */
  10.    void strcpy(char *s, char *t)
  11.    {
  12.        int i;
  13.        i = 0;
  14.        while ((*s = *t) != '\0') {
  15.            s++;
  16.            t++;
  17.        }
  18.    }
  19. /* strcpy:  copy t to s; pointer version 2 */
  20.    void strcpy(char *s, char *t)
  21.    {
  22.        while ((*s++ = *t++) != '\0')
  23.            ;
  24.    }

 

  1. /* strcmp:  return <0 if s<t, 0 if s==t, >0 if s>t */
  2.    int strcmp(char *s, char *t)
  3.    {
  4.        int i;
  5.        for (i = 0; s[i] == t[i]; i++)
  6.            if (s[i] == '\0')
  7.                return 0;
  8.        return s[i] - t[i];
  9.    }

 

  1.  /* strcmp:  return <0 if s<t, 0 if s==t, >0 if s>t */
  2.    int strcmp(char *s, char *t)
  3.    {
  4.        for ( ; *s == *t; s++, t++)
  5.            if (*s == '\0')
  6.                return 0;
  7.        return *s - *t;
  8.    }

 

  1. /* squeeze:  delete all c from s */
  2.    void squeeze(char s[], int c)
  3.    {
  4.       int i, j;
  5.       for (i = j = 0; s[i] != '\0'; i++)
  6.           if (s[i] != c)
  7.               s[j++] = s[i];
  8.       s[j] = '\0';
  9.    }

 

 

  1. /* strcat:  concatenate t to end of s; s must be big enough */
  2.    void strcat(char s[], char t[])
  3.    {
  4.        int i, j;
  5.        i = j = 0;
  6.        while (s[i] != '\0'/* find end of s */
  7.            i++;
  8.        while ((s[i++] = t[j++]) != '\0'/* copy t */
  9.            ;
  10.    }

 

 

  1. // returns the (right adjusted) n-bit field of x that begins at position p
  2.  /* getbits:  get n bits from position p */
  3.    unsigned getbits(unsigned x, int p, int n)
  4.    {
  5.        return (x >> (p+1-n)) & ~(~0 << n);
  6.    }

 

 

  1. /* binsearch:  find x in v[0] <= v[1] <= ... <= v[n-1] */
  2.    int binsearch(int x, int v[], int n)
  3.    {
  4.        int low, high, mid;
  5.        low = 0;
  6.        high = n - 1;
  7.        while (low <= high) {
  8.            mid = (low+high)/2;
  9.            if (x < v[mid])
  10.                high = mid + 1;
  11.            else if (x  > v[mid])
  12.                low = mid + 1;
  13.            else    /* found match */
  14.                return mid;
  15.        }
  16.        return -1;   /* no match */
  17.    }

 

 

  1. #include <ctype.h>
  2.    /* atoi:  convert s to integer; version 2 */
  3.    int atoi(char s[])
  4.    {
  5.        int i, n, sign;
  6.        for (i = 0; isspace(s[i]); i++)  /* skip white space */
  7.            ;
  8.        sign = (s[i] == '-') ? -1 : 1;
  9.        if (s[i] == '+' || s[i] == '-')  /* skip sign */
  10.            i++;
  11.        for (n = 0; isdigit(s[i]); i++)
  12.            n = 10 * n + (s[i] - '0');
  13.        return sign * n;
  14.    }

 

 

  1. /* shellsort:  sort v[0]...v[n-1] into increasing order */
  2.    void shellsort(int v[], int n)
  3.    {
  4.        int gap, i, j, temp;
  5.        for (gap = n/2; gap > 0; gap /= 2)
  6.            for (i = gap; i < n; i++)
  7.                for (j=i-gap; j>=0 && v[j]>v[j+gap]; j-=gap) {
  8.                    temp = v[j];
  9.                    v[j] = v[j+gap];
  10.                    v[j+gap] = temp;
  11.                }
  12.    }

 

 

  1. #include <string.h>
  2.    /* reverse:  reverse string s in place */
  3.    void reverse(char s[])
  4.    {
  5.        int c, i, j;
  6.        for (i = 0, j = strlen(s)-1; i < j; i++, j--) {
  7.            c = s[i];
  8.            s[i] = s[j];
  9.            s[j] = c;
  10.        }
  11.    }
  12.  /* itoa:  convert n to characters in s */
  13.    void itoa(int n, char s[])
  14.    {
  15.        int i, sign;
  16.        if ((sign = n) < 0)  /* record sign */
  17.            n = -n;          /* make n positive */
  18.        i = 0;
  19.        do {      /* generate digits in reverse order */
  20.            s[i++] = n % 10 + '0';  /* get next digit */
  21.        } while ((n /= 10) > 0);    /* delete it */
  22.        if (sign < 0)
  23.            s[i++] = '-';
  24.        s[i] = '\0';
  25.        reverse(s);
  26.    }

 

  1.  #include <ctype.h>
  2.    /* atof:  convert string s to double */
  3.    double atof(char s[])
  4.    {
  5.        double val, power;
  6.        int i, sign;
  7.        for (i = 0; isspace(s[i]); i++)  /* skip white space */
  8.            ;
  9.        sign = (s[i] == '-') ? -1 : 1;
  10.        if (s[i] == '+' || s[i] == '-')
  11.            i++;
  12.        for (val = 0.0; isdigit(s[i]); i++)
  13.            val = 10.0 * val + (s[i] - '0');
  14.        if (s[i] == '.')
  15.            i++;
  16.        for (power = 1.0; isdigit(s[i]); i++) {
  17.            val = 10.0 * val + (s[i] - '0');
  18.            power *= 10;
  19.        }
  20.        return sign * val / power;
  21.    }

 

 

  1.  /* qsort:  sort v[left]...v[right] into increasing order */
  2.    void qsort(int v[], int left, int right)
  3.    {
  4.        int i, last;
  5.        void swap(int v[], int i, int j);
  6.        if (left >= right) /* do nothing if array contains */
  7.            return;        /* fewer than two elements */
  8.        swap(v, left, (left + right)/2); /* move partition elem */
  9.        last = left;                     /* to v[0] */
  10.        for (i = left + 1; i <= right; i++)  /* partition */
  11.            if (v[i] < v[left])
  12.                swap(v, ++last, i);
  13.        swap(v, left, last);            /* restore partition  elem */
  14.        qsort(v, left, last-1);
  15.        qsort(v, last+1, right);
  16.    }
  17.    /* swap:  interchange v[i] and v[j] */
  18.    void swap(int v[], int i, int j)
  19.    {
  20.        int temp;
  21.        temp = v[i];
  22.        v[i] = v[j];
  23.        v[j] = temp;
  24.    }

 

 

 

  1.  /* trim:  remove trailing blanks, tabs, newlines */
  2.    int trim(char s[])
  3.    {
  4.        int n;
  5.        for (n = strlen(s)-1; n >= 0; n--)
  6.            if (s[n] != ' ' && s[n] != '\t' && s[n] != '\n')
  7.                break;
  8.        s[n+1] = '\0';
  9.        return n;
  10.    }

 

 

  1. void itob(int n, char s[], int b)
  2. {
  3.     int i = 0, j , sign;
  4.     if( ( sign = n ) < 0 )
  5.         n = - n;
  6.      
  7.     do
  8.     {
  9.         j = n % b;
  10.         s[i++] = ( j <= 9 )?j+'0':j-10+'a';
  11.     }while( ( n/=b ) > 0 );
  12.     if( sign < 0 )
  13.         s[i++]='-';
  14.     s[i] = '\0';
  15.     reverse(s);
  16. }    
分享到:
评论

相关推荐

    条码CODE128C语言算法

    综上所述,"条码CODE128C语言算法"涵盖了数据编码、错误校验、图形生成等多个方面的知识,涉及C语言基础、面向对象编程以及Windows编程技术。在实践中,开发者需要结合理论知识和编程技巧,以实现高效、准确的条码...

    c code(C语言代码大全)

    "C code(C语言代码大全)"这个资源显然集合了大量的C语言代码示例,涵盖了各种常见问题的解决方法和实用技巧。这些代码可能是由经验丰富的开发者编写的,旨在帮助初学者理解和实践C语言编程。 在描述中提到的“汉字...

    code(C 语言代码)

    在"code"这个压缩包文件中,很显然包含了与C语言编程相关的代码示例和可能的作业解答。让我们深入探讨一下C语言的核心概念和编程技巧。 C语言的基本结构始于“main”函数,这是每个C程序的起点。程序的执行从main()...

    C语言code.zip

    标题 "C语言code.zip" 暗示了这是一个包含C语言源代码的压缩文件,而描述 "C语言code" 简单地确认了这一点。虽然没有具体的标签提供额外信息,但我们可以根据C语言的基本概念、语法和常用编程实践来讨论相关知识点。...

    行列式计算程序 c语言 code:block通过

    Code::Blocks是一个流行的开源集成开发环境(IDE),特别适合初学者和专业人士进行C、C++编程。 在C语言中编写行列式计算程序,首先需要了解行列式的定义和计算方法。行列式是由方阵的元素按照特定规则组合而成的...

    单片机C语言中code的作用

    在探讨单片机C语言中"code"关键字的作用之前,我们先来理解一下单片机与C语言的基本概念。单片机,又称微控制器,是一种将CPU、存储器(包括RAM和ROM)、输入/输出接口等集成在一块芯片上的微型计算机系统。它广泛...

    ANSI-C code

    3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; Speech codec speech processing functions; Adaptive Multi-Rate - Wideband (AMR-WB) ...ANSI-C code (Release 9)

    C语言头文件 RETCODE

    C语言头文件 RETCODEC语言头文件 RETCODEC语言头文件 RETCODEC语言头文件 RETCODEC语言头文件 RETCODEC语言头文件 RETCODEC语言头文件 RETCODEC语言头文件 RETCODEC语言头文件 RETCODEC语言头文件 RETCODEC语言...

    C Code Library

    C Code Library,正如其名,是一个专注于C语言的代码库,版本为V1.8.5.172。这个库为开发者提供了丰富的C语言源代码示例,旨在帮助程序员更好地理解和运用C语言进行软件开发。作为一个重要的学习资源,它包含了各种...

    C语言09-看门狗复位测试程序(STC32G-DEMO-CODE-220311kw)

    C语言09-看门狗复位测试程序(STC32G-DEMO-CODE-220311kw)C语言09-看门狗复位测试程序(STC32G-DEMO-CODE-220311kw)C语言09-看门狗复位测试程序(STC32G-DEMO-CODE-220311kw)C语言09-看门狗复位测试程序(STC32G-...

    code93码c代码

    在给定的“code93码c代码”中,开发者使用C语言在Visual C++(VC)环境下编写了一个计算Code93码校验位的程序。 C语言是一种基础且灵活的编程语言,适合于底层系统编程和各种应用开发。在描述中提到,该代码能够...

    C语言27-I2C从机中断模式与IO口模拟I2C主机进行自发自收(STC32G-DEMO-CODE-220311kw)

    C语言27-I2C从机中断模式与IO口模拟I2C主机进行自发自收(STC32G-DEMO-CODE-220311kw)C语言27-I2C从机中断模式与IO口模拟I2C主机进行自发自收(STC32G-DEMO-CODE-220311kw)C语言27-I2C从机中断模式与IO口模拟I2C...

    google code mfcc c语言实现。

    本项目是Google Code上一个使用C语言实现MFCC计算的开源库,遵循MIT开源协议,意味着你可以自由地使用、修改和分发这个代码库。 MFCC的基本流程包括预加重、分帧、加窗、傅立叶变换、梅尔滤波器组、对数运算、离散...

    11_Vehicle Spy二次开发C Code Interface.mp4

    专业CAN工具VehicleSpy 3的二次开发,讲解用C调用接口实现自动化编程测试

    day1-code_简单c语言程序_

    在编程世界中,C语言是一种基础且强大的编程语言,它被广泛用于系统开发、软件工程、嵌入式系统以及各种应用程序。"简单C语言程序"这个主题涵盖了C语言的基础概念和控制结构,让我们通过分析标题和描述中的内容,...

    C_code example1

    【标题】:“C_code example1”是一个以C/C++编程语言为基础的知识点示例,它可能包含了一系列的源代码文件和相关的学习资料。 【描述】:这个资源包着重于C/C++编程,提供了实例代码来帮助理解编程概念。文件描述...

    C_code example

    【标题】"C_code example" 是一个以C语言编写的代码示例集合,可能包含了多个小型项目或练习,用于帮助学习者理解和应用C语言的基本概念和编程技巧。 【描述】中提到的两个项目: 1. **010 猜数字游戏**:这是一个...

    C语言28-I2C主机模式访问AT24C02程序(STC32G-DEMO-CODE-220311kw)

    C语言28-I2C主机模式访问AT24C02程序(STC32G-DEMO-CODE-220311kw)C语言28-I2C主机模式访问AT24C02程序(STC32G-DEMO-CODE-220311kw)C语言28-I2C主机模式访问AT24C02程序(STC32G-DEMO-CODE-220311kw)C语言28-I2C...

    单片机C语言code与data的作用

    单片机C语言code与data的作用 在单片机C语言中,Code和Data是两个非常重要的概念,它们在单片机程序设计中扮演着重要的角色。Code是指程序代码,Data是指数据存储器。了解Code和Data的作用是非常重要的,因为它们...

Global site tag (gtag.js) - Google Analytics