首页 > C > 函数 阅读:57,774

函数的应用

< 上一页 函数定义 函数注意事项 下一页 >

一般来说,在C语言里,算法逻辑都是通过函数来实现的。然后在main函数里直接调用这些函数。下面我们来应用函数,实现一些简单的算法和计算。

1,判断一年是否为润年

我们知道,如果一年能够被4整除并且不能被100整除那么它就是润年,或者一年能够被100整除同时也能被400整除那么它也是润年。根据这个判断标准,可以写出如下的函数来计算:

bool is_leap_year(int year)

{

    return year%(year%100?400:4)?true:false;

}

int main(void)

{

    int year = 1996;

    printf(“%d %s a leap year”,year,is_leap_year(year)?”is”,”is not”);

    return 0; 

}

2,将一个字符变为小写字母

大写字母与小写字母之间的转换公式为:

char ch=’A’;

char lowerch=ch +’a’-‘A’;

同时还要在转换的时候,判断输入参数是否为大写字母,判断条件为:

ch>=’A’&&ch<=’Z’

所以,可以得出如下函数:

int tolower(char ch)

{

    If(ch>==’A’&&ch<=’Z’)

    {

        ch += ‘a’-‘A’;

    }

    return ch;

}

3,将一个字符串逆置

比如:“Hello world!”à”!dlrow olleH”

通过分析发现,要实现逆置功能,只需要将字符串的第0个字符和最后一个字符进行交换;第一个字符和倒数第二个字符交换。所以,假如字符串的长度为len,那么交换公式为:

0len-1交换

1len-1-1交换

2len-1-2交换

ilen-1-i交换

交换从两边往中间移动,中间字符不用交换。因此,得到如下算法:

首先,写出用于计算字符串长度的函数:

size_t mystrlen(const char *str)

{

         size_t len = 0;

         while(*str!=’\0’)

         {

                   str++;

                   len++;

         }

         return len;

}

void reverse_str(char *str)

{

         size_t len =mystrlen(str);

         for(int i = 0; i < len/2; i++)

         {

                   char tmp = str[i];

                   str[i] = str[len-i-1];

                   str[len-i-1] = tmp;

         }

}

int main(void)

{

         char str[]=”Hello world”;//注意,在测试的时候,此处不能定义为char *str=”Hello world”;

//想想为什么?

         printf(“before:%s\n”, str);

         reverse_str(str);

         printf(“later:%s\n”, str);

    return 0;

}

< 上一页 函数定义 函数注意事项 下一页 >

周哥教IT,分享编程知识,提高编程技能,程序员的充电站。跟着周哥一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

当你决定关注「周哥教IT」,你已然超越了90%的程序员!

IT黄埔-周哥教IT技术交流QQ群:213774841,期待您的加入!

二维码
微信扫描二维码关注