#include<stdio.h>
#include<stdlib.h>
void main() {
char a[10] = "hello my";
char b[10] = { 0 };
char *t = mystrcpy(b, a);
printf("%s\n", b);
printf("%s\n", t);
char *a1 = a;
char *b1 = b;
//当执行完*a1++ == *b1++时,a1,b1指向地址已经改变,这时候判断的a1和前面的a1不同了。
while (*a1++ == *b1++ && *b1 && *a1) {
printf("%c", *a1);
}
}
char* mystrcpy(char* to, const char* from) {
char* t = to;
while (*t++ = *from++)
;
return to;
}
int mystrcmp(const char* str1, const char* str2) {
/*
将指向常量的指针 赋值给 指向非常量指针
危险操作
char* s1 = str1;
char* s2 = str2;
*/
while (*str1 && *str2 && *str1 == *str2) {
str1++;
str2++;
}
if (*str1 == *str2 && *str1 == '\0') {
return 0;
}else if (*str1 > *str2) {
return 1;
}else {
return -1;
}
}
char* mystrcat(char *str1, const char *str2) {
char* s1 = str1;
while (*s1) {
++s1;
}
while (*s1++ = *str2++)
;
return str1;
}
int mystrlen(const char* str) {
int i = 0;
while (*str++) {
++i;
}
return i;
}