(1)C语言实现库函数:strcpy()
return strDestCopy;
}
【attention】
strcpy()函数返回char *类型的指针,这是为了使用链式表达式.比如在测试函数中就可以这样来调用:
int len = 0;
len = getStelen(strcpy(strDest,strSrc));
这样,通过这种链式表达式来同时进行两个操作,不仅调用方便,程序结构也简洁明了.
(2)C语言实现库函数:atol()
【点拨】
int atoi(const char *nptr);
函数说明:atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('/0')才结束转换,并将结果返回.
返 回 值:返回转换后的整型数.
【相关函数】
isspace() 测试字符是否为空格字符
头 文 件: #include <ctype.h>
函数说明: 检查参数c是否为空格字符,也就是判断是否为空格('')、定位字符('/t')、CR('/r')、换行('/n')、垂直定位字符('/v')或翻页('/f')的情况.遇见/r /n的情况返回为false, 只有空格的情况才返回true.
long my_atol(const char *target)
{
int c,sign,total;
while(isspace((int)(unsigned char)*target))
++target;
c = (int)(unsigned char)*target;
sign = c;
if((c=='-')||(c=='+'))
c=(int)(unsigned char)*(++target); //跳过符号
total=0;
while(isdigit(c))
{
total=10*total+(c-'0');
c=(int)(unsigned char)*(++target);
}
if(sign=='-')
return -total;
else
return total;
}
int main(void)
{
char *a = " -1234def56";
int i = my_atol(a);
printf("[%s] =====> [%d]/n",a,i);
}
(3)C语言实现库函数:strcmp()
int mystrcmp(char *source, char *dest)
{
if((source==NULL) || (dest==NULL))
return -1;
while((*source == *dest) && (*source != '/0') && (*dest != '/0'))
{
source++;
dest++;
}
if (*source =='/0' && *dest == '/0')
return 0;
else
return -1;
}
int main()
{
char *str1 = "abcde";
char *str2 = "abcd";
printf("ret = %d", mystrcmp(str1, str2));
return 0;
}