?? string.c
字號:
/**
* @file string.c
* @brief string operation function
* Copyright (C) 2006 Anyka (GuangZhou) Software Technology Co., Ltd.
* @author Junhua Zhao
* @date 2006-01-05
* @version 1.0
* @ref AK3221 technical spec.
*/
#include "string.h"
int strlen(const char * s)
{
int ret;
for(ret = 0 ; s[ret] != '\0'; ret++)
;
return ret;
}
void *memset(void *s, char c, unsigned int n)
{
unsigned int i;
char *p;
p = (char *)s;
for( i = 0 ; i < n ; i ++)
{
p[i] = (char)c;
}
return s;
}
void *memcpy(void *dest, const void *sour, unsigned int n)
{
unsigned int i;
char *pd,*ps;
pd = (char *)dest;
ps = (char *)sour;
for( i = 0 ; i < n ; i ++)
{
pd[i] = ps[i];
}
return dest;
}
char *strcpy(char *dest, const char *sour)
{
int i;
for(i=0;;i++)
{
*(dest+i) = *(sour+i);
if (*(sour+i)=='\0')
break;
}
return dest;
}
int strcmp(const char *s1, const char *s2)
{
int i;
int len = strlen (s1);
if ( len != strlen(s2) )
{
return -1;
}
for(i =0 ; i<len; i ++)
{
if (s1[i] != s2[i])
{
return -1;
}
}
return 0;
}
short ctos(char ch,char flag)
{
if (ch>='0' && ch<='9'){
if ((ch-'0')>=flag)
return -1;
else return ch-'0';
}
if (flag==16){
if (ch>='a' && ch<='f')
return ch-'a'+10;
else if (ch>='A' && ch<='F')
return ch-'A'+10;
else return -1;
}
else return -1;
}
int atoi(const char *str,char flag)
{
int i,r=0;
short k;
for(i=0;i<strlen(str);i++){
k = ctos(*(str+i),flag);
if (k<0)
return 0;
r = r*flag+k;
}
return r;
}
char *itoa(int num,char *dest,char flag,short len)
{
short j;
int k;
unsigned int number;
char i,shortflag;
number = (unsigned int)num;
shortflag = 0;
if (!len){
switch(flag){
case 2:
len = 32;
break;
case 8:
len = 11;
break;
case 10:
len = 10;
if(num<0)
number = -num;
break;
case 16:
len = 8;
break;
default:
len = 8;
}
shortflag = 1;
}
memset(dest,'0',len);
*(dest+len) = '\0';
if (flag>16)
return dest;
j = len-1;
while(j>=0){
k = (short)flag;
i = (char)(number % flag);
if (i<10)
dest[j] = i+'0';
else dest[j] = i-10+'A';
j--;
if (number<flag)
break;
number = number / flag;
}
if (flag==10 && num<0)
{
dest[j] = '-';
j--;
}
if (shortflag){
shortflag = j+1;
for(j = shortflag;j<len+1;j++)
dest[j-shortflag] = dest[j];
}
return dest;
}
/* end of file */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -