#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *my_strchr( char *dest, const char src){
while (*dest++){
if (*dest == src)
return dest;
}
return NULL;
}
int main(){
char arr[20] = "abcddddef";
char a = 'd';
char *ret = 0;
ret = my_strchr(arr, a);
printf("%s\n",ret);
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *my_strrchr(char *dest,const char src){
char *temp = NULL;
while (*dest++)
{
if (*dest == src)
temp = dest;
}
return temp;
}
int main(){
char arr[20] = "asddddddf";
char a = 'd';
char *ret = 0;
ret = my_strrchr(arr, a);
printf("%s\n",ret);
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
int my_strncmp(const char *s1,const char *s2,size_t n){
assert(s1 != NULL);
assert(s2 != NULL);
while (n--){
if ((*s1 == *s2)&&*s1){
s1++;
s2++;
}
else if (*s1 != *s2)
{
return (*(unsigned char*)s1 - *(unsigned char*)s2);
}
}
return 0;
}
int main(){
char *s1 = "wangmazi";
char *s2 = "wisi";
printf("%d\n", my_strncmp(s1, s2, 2));
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
int my_strcmp(const char* s1, const char* s2)
{
assert(s1);
assert(s2);
while ((*s1 == *s2)&&*s1)
{
++s1;
++s2;
}
return (*(unsigned char*)s1 - *(unsigned char*)s2);
}
int main()
{
char *p = "abcdef";
char arr[] = "abcdef";
if (my_strcmp(p, arr) < 0)
{
printf("%s\n", p);
}
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
char* my_strcat(char* dest,const char* src)
{
assert(dest != NULL);
assert(src != NULL);
char* ret = dest;
while (*dest)
{
++dest;
}
while (*dest++ = *src++)
{
;
}
return ret;
}
int main()
{
char arr[20] = "week";
char *p = "end";
printf("%s\n", my_strcat(arr, p));
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
char *my_strncat(char *dest,const char *src,size_t n){
assert(dest!=NULL);
assert(src!=NULL);
char *s1 = dest;
while (*dest){
++dest;
}
while (n--){
*dest++ = *src++;
}
return s1;
}
int main(){
char arr[20] = "week";
char *p = "end";
my_strncat(arr, p, 2);
printf("%s\n",arr);
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
char* my_strcpy(char *dest, const char* src)
{
assert(dest);
assert(src);
char* ret = dest;
while (*dest++ = *src++)
{
;
}
return ret;
}
int main()
{
char arr[20] = { 0 };
char* p = "hello world";
printf("%s\n", my_strcpy(arr, p));
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
char *my_strncpy(char *dest,const char*src,size_t n){
assert(dest!=NULL);
assert(src!=NULL);
char *s1 = dest;
while ((n) && *src)
{
*dest++ = *src++;
n--;
}
if (n)
{
while (--n)
{
*dest++ = '\0';
}
}
return s1;
}
int main(){
char arr[20] = { 0 };
char *p = "asddd";
my_strncpy(arr, p, 3);
printf("%s\n",arr);
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
int my_strlen(const char* src)
{
assert(src);
int count = 0;
while (*src++)
{
count++;
}
return count;
}
int main()
{
printf("%d\n", my_strlen("abcdef"));
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int my_strlen(const char* src)
{
if (*src)
{
return (1 + my_strlen(src + 1));
}
else
{
return 0;
}
}
int main()
{
printf("%d\n", my_strlen("abcdef"));
system("pause");
return 0;
}
#include <stdlib.h>
#include <string.h>
#include <assert.h>
char* my_strstr(char* dest, const char* src)
{
assert(dest != NULL);
char* cur = dest;
const char* ptr = src;
while (*dest++)
{
cur = dest;
while (*cur == *ptr)
{
++cur;
++ptr;
}
if (*ptr == '\0')
{
return dest;
}
else
{
ptr = src;
}
}
return NULL;
}
int main()
{
char* p = "abbbbcdef";
char arr[] = "g";
printf("%s\n", my_strstr(p, arr));
system("pause");
return 0;
}