38 lines
926 B
C
38 lines
926 B
C
|
|
#include "str.h"
|
|
|
|
int string_cmp(char *s1,char *s2, int maxlength) {
|
|
int i=0;
|
|
while(*s1 && *s2 && (maxlength==0 || i<maxlength)) { if (*s1!=*s2) return 0; s1++; s2++; i++;}
|
|
if ((maxlength==0 || i<maxlength) && (*s1 || *s2)) return 0; // only partial match
|
|
return 1;
|
|
}
|
|
|
|
void string_copy(char *dst,char *src, int length) {
|
|
int i=0;
|
|
while(*src && (length==0 || i<length)) { *dst=*src; dst++; src++; i++;}
|
|
*dst=0;
|
|
}
|
|
/*
|
|
Concat two null-terminated strings dst=dst+src
|
|
*/
|
|
void string_concat(char *dst,char *src) {
|
|
while (*dst) dst++;
|
|
while (*src) { *dst=*src; dst++; src++; }
|
|
*dst=0;
|
|
}
|
|
|
|
/*
|
|
Add predix to destiantion sting dst=src+dst
|
|
*/
|
|
void string_rconcat(char *dst,char *prefix) {
|
|
char *p,*q;
|
|
int i,pn=string_length(dst),qn=string_length(prefix);
|
|
for(i=0;i<qn;i++) { dst[i+qn]=dst[i]; dst[i]=prefix[i]; }
|
|
}
|
|
|
|
int string_length(char *s) {
|
|
char *start=s; while (*s) s++;
|
|
return (int)(s-start);
|
|
}
|