diff options
Diffstat (limited to 'src/string.c')
| -rw-r--r-- | src/string.c | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/src/string.c b/src/string.c deleted file mode 100644 index b0c42f2..0000000 --- a/src/string.c +++ /dev/null @@ -1,113 +0,0 @@ -#include"types.h" - -size_t stringlen(char *str) -{ - size_t i; - - for(i=0;str[i]!='\0';i++) ; - - return i; -} - -bool stringcmp(char *str1,char *str2) -{ - size_t i; - for(i=0;str1[i]||str2[i];i++) if(str1[i]!=str2[i]) return 0; - if(str1[i]==str2[i]) return 1; - return 0; -} - -void stringcat(char *str1,char *str2) -{ - char *tmp=str1; - while(*tmp) tmp++; - while(*str2) *tmp++=*str2++; - *tmp=*str2; -} - -void stringcpy(char *str1,char *str2) -{ - for(size_t i=0;str2[i]!='\0';i++) str1[i]=str2[i]; -} - -void stringrev(char *str) -{ - size_t i=stringlen(str)-1; - - for(size_t j=0;j<i-j;j++) - { - char tmp=str[i-j]; - str[i-j]=str[j]; - str[j]=tmp; - } -} - -uint32_t stoi(const char *str) -{ - uint32_t num=0; - - for(size_t i=0;str[i]!='\0';i++) - { - if(str[i]<'0'||str[i]>'9') return num; - num*=10; - num+=str[i]-'0'; - } - - return num; -} - -void itos(uint32_t num,char *str) -{ - if(num==0) stringcpy(str,"0"); - else - { - size_t i=0; - for(;num>0;num/=10,i++) str[i]='0'+num%10; - str[i]='\0'; - - stringrev(str); - } -} - -double stof(const char *str) -{ - double num=0; - - bool point=0; - uint32_t pow=1; - size_t i=0; - - for(;str[i]!='\0';i++) - { - if(str[i]=='.') - { - if(point) return num/pow; - point=1; - continue; - } - if(str[i]<'0'||str[i]>'9') return num/pow; - num*=10; - num+=str[i]-'0'; - if(point) pow*=10; - } - - return num/pow; -} - -const int decimals=7; -void ftos(double num, char *str) -{ - itos((uint32_t)num,str); - - stringcat(str,"."); - char c[2]; - c[1]='\0'; - - for(size_t i=0;i<decimals;i++) - { - num-=(uint32_t)num; - num*=10; - c[0]=(uint32_t)num+'0'; - stringcat(str,c); - } -} |
