C语言中自定义函数和函数的使用方法

来源:互联网 发布:tts软件怎么用 编辑:程序博客网 时间:2024/05/16 06:36
C程序语言中,标准函数库函数有限,常常需要自定义一些自己适用的函数,来配合main函数完成程序的一系列动作
下边写一个简单的类似grep的函数来演示自定义函数的方法和函数的使用方法

例子:
[root@CWG hc]# cat gep
gep    gep.c 
[root@CWG hc]# cat gep.c
#include <stdio.h>
#define MAXLINE 1000   //定义一个最大行
int glefc(char line[], int max);   //声明一个glefc函数,此函数可以接受两个值,一个是char类型,一个是int类型
int strindex(char source[], char searchfor[]); //声明一个strindex函数,可以接受两个值,都是char类型
char pattern[] = "culd";      //定义一个全局char变量,这个作为被find的字符串

main()            //主main函数
{
    char line[MAXLINE];        
    int found = 0;        
    while (glefc(line, MAXLINE) > 0)                   //用while循环,调用glefc函数,此函数接受两个值,第一个line char类型,第二个定义的常量MAXLINE 为int类型   如果getchar函数获取的这个字符串不为空,则返回字符串长度的值,所以大于0
        if (strindex(line, pattern) >= 0) {           //如果line char的长度大于0,则用strindex函数进行查找line字符串中包不包含全局变量pattern的字符串,如果包含,则返回pattern字符串在line字符串中的位置,如果不包含,则返回-1
            fprintf(stdout, "%s", line);          //如果以上都成立,则打印此行
            found++;
        }
    return found;
}

int glefc(char s[], int lim)    //声明glefc函数,这个函数返回一个int类型的值,接受两个值,第一char类型,第二个是int类型
{
    int c, i = 0;
    while (--lim > 0 && (c = getchar()) != EOF && c != '\n')
        s[i++] = c;
    if (c == '\n')
        s[i++] = c;
    s[i] = '\0';
    return i;
}

int strindex(char s[], char t[])            //strindex函数返回一个int类型的值 接受两个char类型的值
{                   //char s和char t只在当前函数中使用,别的函数中也可再次声明名字叫t或者s的变量
    int i, j, k;
    for (i = 0; s[i] != '\0'; i++) {
        for (j = i, k = 0; t[k] != '\0' && s[j] == t[k]; j++,k++)
            ;
    if (k > 0 && t[k] == '\0')
        return i;
    }
    return -1;
}
[root@CWG hc]# ./gep         //执行结果如下
culd
culd
ddddddddddculdddddddddddd
ddddddddddculdddddddddddd
bbbbbbbb
eeeeeeee
这个就是返回int类型值的函数,和函数的基本调用方法

################
迷途小运维学习C程序语言笔记
作者:john
转载请注明出处