abs函数 linux
2017-12-12 17:44:51 xiaocao9903 阅读数 470

linux     #include<cmath>   fabs()

windows #include <cmath>  abs()

2018-03-27 17:19:20 Cuihuahuaa 阅读数 42

使用函数库

1.人们把大量的基础性操作编写成一个个独立的函数,这些函数具有低耦合、高内聚的特点,这些函数集合成一个已经编译好的不完整的二进制代码文件,就是函数库

2.根据数据库中函数逻辑加载的时间不同,可分为静态库、载入连接库、动态连接库。

(1)静态库是在连接的时候被加入到应用程序的可执行文件中的

(2)载入连接库在编译是并不将库的内容添加到应用程序的可执行文件中

(3)动态连接库是在程序运行过程根据需要动态加载到程序中的

字符操作

测试参数所对应的字符是否为拉丁字母

   #include < ctype.h>

   #int isalpha(int c);

测试参数所对应的字符是否为大写字母(isupper)或小写字母(islower)

   #include < ctype.h>

   #int isupper(int c);

   #int islower(int c);

测试参数所对应的字符是否为阿拉伯数字(isdigit)或十六进制数字(isxdigit)

   #include <ctype.h>

   #int isdigit(int c);

   #int isxdigit(int c);

测试参数所对应的字符是否为拉丁字母或阿拉伯数字

   #include <ctype.h>

   #int isalnum(int c);

测试参数所对应的字符是否为空白字符

   #include <ctype.h>

   #int isspace(int c);

测试参数所对应的字符是否为标点符号或特殊符号

   #include <ctype.h>

   #int ispunct(int c);

测试参数所对应的字符是否为可打印字符

   #include <ctype.h>

   #int isgraph(int c);

   #int isprint(int c);

字符串操作

字符串是编程中一种重要的数据类型,因为用户通过键盘的输入都是采用字符串的形式的

数据类型转换

将字符串转化成整型

   #include <stdlib.h>

     int atoi(const char * nptr);

将字符串转化成长整型

   #include <stdlib.h>

     long atoi(const char * nptr);

见字符串转化成双精度浮点型

   #include <stdlib.h>

     double atof(const char * nptr);

将所提供的数字转化成字符串

   #include <stdlib.h>

     char * gcvt ( double number , size_tndigits , char * buf );

将字符串转化成成长整型

   #include <stdlib.h>

     long strtol (const char * nptr , char * * endptr , int base);

字符串数据处理

找到字符串第一次出现某一字符(或字符代码)的位置

   #include <string.h>

     char * index(const char * s, int c);

     char* strchr(const char * s, int c);

找到字符串最后一次出现某一字符(或字符代码)的位置

   #include <string.h>

     char * rindex(const char * s, int c);

     char * strrchr(const char * s, int c);

计算字符串的长度

   #include <string.h>

    int strlen(const char * s);

字符串拷贝

   #include <string.h>

    char * strcpy(char * dest, const char * src);

    char * strncpy(char * dest, const char * src, size_ t n);

将两个字符串连接成一个字符串

   #include <string.h>

     char * strcat(char * dest, const char * src);

     char * strncat(char * dest, const char * src, size_t n);


2016-08-18 01:06:19 hoochiang 阅读数 15

1. 在shell文件内部定义函数并引用:

[~/shell/function]# cat factorial.sh 

#!/bin/bash

function factorial

{

factorial=1

for (( i=1;i <= $1;i++ ))

        do

        factorial=$[ $factorial * $i ]

        done

echo $1的阶乘是:$factorial

}

echo '程序名':$0,用于求阶乘

factorial $1

[~/shell/function]# ./factorial.sh 10

程序名:./factorial.sh,用于求阶乘

10的阶乘是:3628800

2.返回值

函数返回码是指函数最后一条命令的状态码,可以用于函数返回值

使用return命令手动指定返回值:

[~/shell/function]# cat return.sh 

#!/bin/bash

function fun1 {

  read -p "enter a: " a

  echo -n "print 2a: "

  return $[ $a * 2 ]

}

fun1

echo "return value $?"

[~/shell/function]# ./return.sh 

enter a: 100

print 2a: return value 200

由于shell状态码最大是255,所以当返回值大于255时会出错

[~/shell/function]# ./return.sh 

enter a: 200

print 2a: return value 144

3.函数输出

为了返回大于255的数、浮点数和字符串值,最好用函数输出到变量:

[~/shell/function]# cat ./fun_out.sh 

#!/bin/bash

function fun2 {

  read -p "enter a: " a

  echo -n "print 2a: "

  echo $[ $a * 2 ]

}

result=`fun2`

echo "return value $result"

[~/shell/function]# ./fun_out.sh     

enter a: 400

return value print 2a: 800

4.向函数传递参数(使用位置参数):

[~/shell/function]# cat ./parameter.sh 

#!/bin/bash

if [ $# -ne 3 ]

then

    echo "usage: $0 a b c"

    exit

fi

fun3() {

    echo $[ $1 * $2 * $3 ]

}

result=`fun3 $1 $2 $3`

echo the result is $result

[~/shell/function]# ./parameter.sh  1 2 3

the result is 6

[~/shell/function]# ./parameter.sh  1 2

usage: ./parameter.sh a b c

5.全局变量与局部变量

默认条件下,在函数和shell主体中建立的变量都是全局变量,可以相互引用,当shell主体部分与函数部分拥有名字相同的变量时,可能会相互影响,例如:

[~/shell/function]# cat ./variable.sh    

#!/bin/bash

if [ $# -ne 3 ]

then

    echo "usage: $0 a b c"

    exit

fi

temp=5

value=6

echo temp is: $temp

echo value is: $value

fun3() {

    temp=`echo "scale=3;$1*$2*$3" | bc -ql`   

    result=$temp

}

fun3 $1 $2 $3

echo "the result is $result"

if [ `echo "$temp > $value" | bc -ql` -ne 0 ]

then 

    echo "temp is larger"

else

    echo "temp is still smaller"

fi

[~/shell/function]# ./variable.sh  12 3 2

temp is: 5

value is: 6

the result is 72

temp is larger

在这种情况下,在函数内部最好使用局部变量,消除影响

[~/shell/function]# cat ./variable.sh 

#!/bin/bash

if [ $# -ne 3 ]

then

    echo "usage: $0 a b c"

    exit

fi

temp=5

value=6

echo temp is: $temp

echo value is: $value

fun3() {

    local temp=`echo "scale=3;$1*$2*$3" | bc -ql`   

    result=$temp

}

fun3 $1 $2 $3

echo "the result is $result"

if [ `echo "$temp > $value" | bc -ql` -ne 0 ]

then 

    echo "temp is larger"

else

    echo "temp is still smaller"

fi

[~/shell/function]# ./variable.sh  12 3 2

temp is: 5

value is: 6

the result is 72

temp is still smaller

6.向函数传递数组变量:

[~/shell/function]# cat array.sh 

#!/bin/bash

a=(11 12 13 14 15)

echo ${a[*]}

function array(){

  echo parameters : "$@" 

  local factorial=1

  for value in "$@"

  do

    factorial=$[ $factorial * $value ]

  done

  echo $factorial

}

array ${a[*]}

[~/shell/function]# ./array.sh 

11 12 13 14 15

parameters : 11 12 13 14 15

360360

7.函数返回数组变量

[~/shell/function]# cat array1.sh 

#!/bin/bash

a=(11 12 13 14 15)

function array(){

  echo parameters : "$@" 

  local newarray=(`echo "$@"`)

  local element="$#"

  local i

  for (( i = 0; i < $element; i++ ))

  {

    newarray[$i]=$[ ${newarray[$i]} * 2 ]    

  }

  echo  new value:${newarray[*]}

}

result=`array ${a[*]}`

echo ${result[*]}

[~/shell/function]# ./array1.sh 

parameters : 11 12 13 14 15 new value:22 24 26 28 30

2017-10-19 22:03:09 dtmyf 阅读数 67

1.怎么定义一个函数?

函数定义需要有函数类型(即函数返回值类型),函数名和函数参数。

例如定义一个函数:

int fun(int a)

{


}

即该函数额类型为int型,名为fun,有一个int型的参量a。


2.函数的定义和声明有什么关系?

函数的声明就是声称一个函数的名字,只是说明一个函数的名字,不涉及函数的实现,即没有函数体。

函数的定义就是确定一个函数的意义,即让函数具有某一个功能。

在要使用一个自定义函数时,先要在使用它前写一个函数的定义,并放置在main函数的前面。如果函数的定义放在了main函数的后面,则需要在使用该函数前,写一个声明。

声明只要写函数的类型,函数名,函数参数即可,最后加一个分号。


3.关于形式参量和实际参数的问题

在函数定义中,函数的参数列表中各个参数是形式参量,在main函数调用该函数时,括号内输入的参数称为实际参数,传递到形式参量那里。

实际参数的类型必须和函数定义的形式参量的类型保持一致。


4.函数调用的过程。

1.通过函数名找到函数的入口地址,进入函数。

2.给形参分配内存空间。

3.进行数值传递(或者地址传递)。

4.执行函数体的语句。

5.返回函数值。

6.释放空间。


5.如何实现自定义函数返回多个值?

1).利用全局变量。

可以考虑把要返回的多个值定义为全局变量,当函数调用时,全局变量被更改,再把更改后的全局变量用于主函数中。

2).传递数组指针。

可以考虑把多个返回值作为数组元素定义成一个数组的形式,并使该数组的地址作为函数的形式参数,以传址方式传递数组参数。函数调用后,形参数组元素改变导致实参改变。

3).传递结构体指针。



6.什么是回调函数?

回调函数是一个通过函数指针调用的函数。将一个函数指针传递给另一个函数,当这个函数指针被用来调用它所指向的函数时,我们就说这个函数时回调函数。


7.什么是变参函数?

变参函数的一个典型例子就是printf函数。其函数原型为:int printf(const char*format,...)

它只有一个固定参数 format,其后是占位符“...”,表示后面的参数的个数不定。

2014-07-22 18:19:10 kkgbn 阅读数 453
echo_err()
{
    echo -e "\E[1;31m""$@ \033[0m"
    echo $@>> ${LOG_FILE}

echo_ok(){
    echo -e "\E[1;32m""$@ \033[0m"
    echo $@>> ${LOG_FILE}

}


使用


echo_ok `date` "init sucess!"  $http_result 

没有更多推荐了,返回首页