示例#1
0
文件: chaine.c 项目: SquierDotQn/ASR4
char *mon_strcat(char *s1, const char *s2){
	int lens1 = mon_strlen(s1);
	int lens2 = mon_strlen(s2);
	int i;
	for(i=0;i<=lens2;i++)
		*(s1+i+lens1)=*(s2+i);
	return s1 ;
}
示例#2
0
文件: chaine.c 项目: SquierDotQn/ASR4
char *mon_strstr(const char *haystack, const char *needle){
        int h_size = mon_strlen(haystack), n_size = mon_strlen(needle);
        int i=0;
        if(n_size==0){
                return (char*)haystack;
        }
        while(i<h_size-n_size){
                i++;
                if(mon_strncmp(haystack+i, needle, n_size)==0)
                        return (char*)haystack+i;
        }
        return NULL;
}
示例#3
0
文件: chaine.c 项目: SquierDotQn/ASR4
int mon_strcmp(const char *s1, const char *s2){
	int i=0;
	while(*(s1+i)!='\0'||*(s2+i)!='\0'){
		if(*(s1+i)==*(s2+i)){
			i++;
		} else if(*(s1+i)>*(s2+i)){
			return 1;
		} else if(*(s1+i)<*(s2+i)){
			return -1;
		}
	}
	if(mon_strlen(s1)>mon_strlen(s2)){
		return 1;
	} else if( mon_strlen(s2)>mon_strlen(s1)){
		return -1;
	}
	return 0;
}
示例#4
0
char *CDECL mon_strcpy_s(char *dst, size_t dst_length, const char *src)
{
	size_t src_length = mon_strlen(src);
	const char *s = src;

	if (!src || !dst || !dst_length || dst_length < src_length + 1) {
		return NULL;
	}

	while (*s != 0)
		*dst++ = *s++;

	*dst = '\0';

	return dst;
}
示例#5
0
文件: main.c 项目: Nesqwik/system_tps
int main() {
	char s[] = "toto";
	printf("%d\n", mon_strlen(s));
	
	char s1[20] = "abce";
	char s2[] = "abcd";
	printf("%d\n", mon_strcmp(s1, s2));
	printf("%d\n", mon_strncmp(s1, s2, 3));
	printf("%s + %s = %s \n", s1, s2, mon_strcat(s1, s2));
	printf("%c\n", *mon_strchr(s, 'o'));
	
	char str[] = "abcdef";
	char substr[] = "cd";
	printf("%s\n", mon_strstr(str, substr));
	
	return 0;
}
示例#6
0
文件: chaine.c 项目: SquierDotQn/ASR4
int mon_strncmp(const char *s1, const char *s2, int n){
	int i=0;
	while((*(s1+i)!='\0'||*(s1+i)!='\0') && i<n){
		if(*(s1+i)==*(s2+i)){
			i++;
		} else if(*(s1+i)>*(s2+i)){
			return 1;
		} else if(*(s1+i)<*(s2+i)){
			return -1;
		}
	}
	if((mon_strlen(s1)<n)||(mon_strlen(s2)<n)){
		if(mon_strlen(s1)>mon_strlen(s2)){
			return 1;
		} else if( mon_strlen(s2)>mon_strlen(s1)){
			return -1;
		}
	}
	return 0;
}
示例#7
0
MU_TEST(mon_strlen, strlen_non_ascii) {
    MU_ASSERT_EQUAL(mon_strlen("12345ééé"), 8) ;
}
示例#8
0
MU_TEST(mon_strlen, strlen_multi0) {
    char str[] = {'A','A','A','A','A','A','\0','A','A','\0'} ;
    MU_ASSERT_EQUAL(mon_strlen(str), 6) ;
}
示例#9
0
MU_TEST(mon_strlen, strlen0) {
    MU_ASSERT_EQUAL(mon_strlen(""), 0) ;
}
示例#10
0
MU_TEST(mon_strlen, strlen5) {
    MU_ASSERT_EQUAL(mon_strlen("12345"), 5) ;
}