Thema: C++ & C#
Einzelnen Beitrag anzeigen
#24
Alt 12.01.10, 11:30:04
Zahl
Benutzerbild von Zahl
Senior Member
Registriert seit: 29.01.03
Alter: 38
Geschlecht: ♂
Beiträge: 11.517
IRC Zeilen: 181148
Quizrunden gewonnen: 76

Goldener Topposter Silberne Postauszeichnung Bronzener Topposter Blecherner Postaward Core-Award 

Zahl eine Nachricht über ICQ schicken
IPv6
Code:
size_t strlen(const char* sp) {
	size_t ret = 0;
	while (*sp++) ret++;
	return ret;
}

char* strcat(char* sp1, const char* sp2, size_t count) {
	char *s1 = sp1 + strlen(sp1), *s2 = (char*)sp2;
	while (*s2 && count--) *s1++ = *s2++;
	*s1 = '\0';
	return sp1;
}

char* strstr(const char* sp1, const char* sp2) {
	char *scan = (char*)sp1, *matcher = (char*)sp2, *start = NULL;
	while (*scan) {
		if (*scan != *matcher) { // not equal, start over scanning
			if (start) scan = start + 1; // continue scan right after first matching char of previous match (if any)..
			else ++scan; // ..or just go on (if no partial match yet)
			matcher = (char*)sp2; // also reset matcher
			start = NULL; // reset start point of match (cause there is none)
			continue;
		}
		if (start == NULL) start = scan; // remember start of match for return if complete match is found
		++matcher;
		if (*matcher == '\0') return start; // found complete match
		++scan;
	}
	return NULL;
}

Bewertung zu diesem Post
Xela meint: h4x0r'zzzzzzzzz


風向轉變時,有人築牆,有人造風車