关闭

几个常用的函数原型

标签: strcpyatoiitoaislowerissupper
6524人阅读 评论(0) 收藏 举报
分类:
strcpy函数原型

char *strcpy(char *strDest, const char *strSrc)  
{  
    if (strDest == NULL || strSrc == NULL)  
        return NULL;  
      if (strDest == strSrc)  
         return strDest;  
      char *tempDest = strDest;  
      while((*strDest++ = *strSrc++) != '\0');  
      return tempDest;  
}  
这里有几个要点:
1、传进来的参数,为了保护原字符串不被修改,原字符串用 const 修饰
2、对源字符串和目的字符串加上非0断言,而且注意是NULL,并不是0或者bool,这里是C语言,0并不等      于NULL。
 3、为了实现链式操作,将目的地址返回,且返回值类型为char *。

附:见到过的几个常用函数


/**************************************/
/**********     isalnum()     *********/
/**************************************/
int m_isalnum(char ch)
{
 return ((ch<='9'&&ch>='0')
   ||(ch<='z'&&ch>='a')
   ||(ch<='Z'&&ch>='A')); 
}


/**************************************/
/**********     isalpha()     *********/
/**************************************/
int m_isalpha(char ch)
{
 return ((ch<='z'&&ch>='a')
   ||(ch<='Z'&&ch>='A')); 
}


/**************************************/
/**********     islower()     *********/
/**************************************/
int m_islower(char ch)
{
 return (ch<='z'&&ch>='a');
}


/**************************************/
/**********     isupper()     *********/
/**************************************/
int m_isupper(char ch)
{
 return (ch<='Z'&&ch>='A');
}


/**************************************/
/**********     isxdigit()    *********/
/**************************************/
int m_isxdigit(char ch)
{
 return (ch<='9'&&ch>='0');
}


/**************************************/
/**********     tolower()     *********/
/**************************************/
char m_tolower(char ch)
{
 if(ch<='Z'&&ch>='A')
  return (ch+'a'-'A');
 return '0';
}


/**************************************/
/**********     toupper()     *********/
/**************************************/
char m_toupper(char ch)
{
 if(ch<='z'&&ch>='a')
  return (ch+'A'-'a');
 return '0';
}


/**************************************/
/**********       atoi()      *********/
/**************************************/
int m_atoi(char *str)
{
 char *s=str;
 int sum=0, flag=1;
 if(*s==NULL)
  return 0;
 while(*s==' ') /* skip space */
  s++; 
 if(*s=='-')
 {
  flag=-1;
  s++;
 }
 while(*s!='/0' && m_isxdigit(*s))
 {
  sum=*s-'0'+sum*10;
  s++;
 }
 return flag*sum;
}


/**************************************/
/**********       itoa()      *********/
/**************************************/
void m_itoa(int n)
{
 char *s=NULL;
 int i, j, mod, flag=0;
 char num[20];
 if(n<0) 
 {
  flag=1;
  n=-n;
 }
 i=0;
 do 
 {
  mod=n%10;
  n=n/10;  
  num[i++]=mod+'0';
 } while (n>0);
 if(flag) /* print '-' */
  printf("-");
 for(j=i-1; j>=0; j--) /* print reverse char */
 {
  printf("%c", num[j]);
 }
}


/**************************************/
/**********       atof()      *********/
/**************************************/
float m_atof(char *str)
{
 char *s=str;
 if(*s=='/0')
  return 0.0;
 float sum=0.0;
 int flag=1, pow=0;
 if(*s=='-')
 {
  flag=-1;
  s++;
 }
 while(*s!='/0')
 {
  if(*s=='.') /* dot */
  {
   pow=1;
   s++;
   continue;
  }
  sum=*s-'0'+sum*10;
  pow*=10;
  s++;
 }
 return flag*sum/pow;
}


/**************************************/
/**********       ftoa()      *********/
/**************************************/
void m_ftoa(float n)
{
 char num[20];
 int i, j, val, mod, flag, pow;
 float dot;
 if(n<-1e-6)
 {
  flag=1;
  n=-n;
 }
 i=0;
 val=(int)n; /* integer */
 dot=n-val;  /* decimal */
 do
 {
  mod=val%10;
  val=val/10;
  num[i++]=mod+'0';
 }while(val>0);
 if(dot>1e-6)
 {
  num[i]='.';
  pow=10;
 }
 do 
 {
  dot=dot*pow;
  mod=(int)dot;
  num[i++]=mod+'0';
  dot=dot-mod; /* error, why, float... help me */
 } while (dot>1e-6);
 if(flag)
  printf("-");
 for(j=i-1; j>=0; j--)
  printf("%c", num[j]);
}
1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

几个常见字符串处理函数的实现原理

字符串是一种常见的数据结构,对字符串的处理又可以十分灵活,所以在实际开发,尤其是非数值处理中,字符串的应用非常广泛。虽然很多字符串操作都封装在了函数库里,应用程序可以直接通过调用库函数来实现字符串处理...
  • suaoyang
  • suaoyang
  • 2014-07-09 18:26
  • 1847

JS中三种主要方法(函数定义)类别理解 —(JS面向对象&原型)

JS中三种主要方法(函数定义)类别理解 —(JS面向对象&原型)
  • Dong_PT
  • Dong_PT
  • 2016-04-08 20:31
  • 4495

Oracle 常用的几个通用函数

1、NVL() 格式:NVL(value,string1) 如果value为null,则把该值替换为string1,如果不为空,还是该值本身; 用法:select nvl(123,9) from...
  • haidibeike
  • haidibeike
  • 2013-05-31 15:54
  • 1202

数学建模中综合统计工作中常用的几个Excel函数

  • 2013-01-15 20:58
  • 863KB
  • 下载

mysql常用函数原型讲解和用法

MYSQL API文档 23.8.7.36 mysql_init() MYSQL *mysql_init(MYSQL *mysql)Description:Allocates or initializ...
  • Fouse_
  • Fouse_
  • 2017-08-01 19:39
  • 356

字符串常用函数原型

字符串是我们在C语言程序中经常遇到,常见的有字符串的复制,求长度,查找子字符串,两个字符串的比较、连接等等,为了以后编写的方便,现在我就将一些常用的字符串函数的原型一一举出来,可能一下子不会很全,以后...
  • humanspider1
  • humanspider1
  • 2012-07-21 14:22
  • 308

C++string 类常用函数的函数原型

string 类的构造函数: string(const char *s); string(int n,char c); //用 n 个字符 c 初始化 此外,string 类还支持默认构造函...
  • nashouat
  • nashouat
  • 2012-12-29 12:03
  • 380

Input常用的几个函数

键盘相关的输入函数:         1. public static bool GetKey(string name);      描述:     ...
  • liulangdejianxin
  • liulangdejianxin
  • 2016-03-05 15:52
  • 1374

java中二叉树的创建以及几个常用的函数

二叉树是我们在编程过程中常用的数据模型,但是java本身并没有提供简单的二叉树类以供调用,今天我们就自己写了一个BinaryTreeFactory类,用来创建一棵二叉树,并且提供先序遍历,中序遍历,后...
  • yyd19921214
  • yyd19921214
  • 2015-07-31 17:34
  • 511

cocoa 几个常用的图片处理函数

.h文件 #import  #import "NSImage+Conversion.h" void releaseMyContextData(CGContextR...
  • a351945755
  • a351945755
  • 2013-03-06 11:18
  • 7596
    个人资料
    • 访问:520133次
    • 积分:5948
    • 等级:
    • 排名:第4981名
    • 原创:98篇
    • 转载:31篇
    • 译文:0篇
    • 评论:90条
    博客专栏
    最新评论