#include<stdio.h>
#include<string.h>
int mylen(char *p);
int main(){
char str[] = "Hello";
printf("%d\n",mylen(str));
printf("%d\n",sizeof(str));
return 0;
}
int mylen(char *p){
int index = 0;
while(*(p+index) != '\0'){
index++;
} //p[index]等价于*(p+index)
return index;
}
#include<stdio.h>
#include<string.h>
int mycmp(char *s1,char *s2);
int main(int argc,char const *argv[]){
char s1[] = "abc";
char s2[] = "abc ";
printf("%d\n",mycmp(s1,s2));
printf("%d\n",'a'-'A');
return 0;
}
int mycmp(const char *s1,const char *s2){
int index = 0;
while(*s1 == *s2 && *s1 != '\0'){
// s1[index] == s2[index] && s1[index] != '\0'条件语句,选其一
// 执行语句如下:
// if(s1[index] != s2[index]){
// break;
// }else if(s1[index] = '\0'){
// break;
// }
// index++;
s1++;
s2++;
}
return *s1 - *s2;
}
#include<stdio.h>
#include<string.h>
char *mycpy(char *dst,const char *src);
int main(){
int i;
char const s1[] = "abc";
char s2[4];
mycpy(s2,s1);
for(i = 0;i<sizeof(s1)/sizeof(char);i++){
printf("%c\n",s2[i]);
}
printf("%d",sizeof(s1)/sizeof(char));
return 0;
}
char *mycpy(char *dst,const char *src){//返回的是数组的地址
// int index = 0;
char *ret = dst;
while(*(dst++) = *(src++))
;
//src[index] 条件
//语句
// dst[index] = src[index];
// index++;
*dst = '\0';
return ret;
}
#include<stdio.h>
#include<string.h>
char *mycat(char *dst,const char *src);
int main(){
int i;
char s1[] = "Hello";
char const s2[] = "World";
mycat(s1,s2);
// for(i = 0;i<strlen(s1);i++){ //strlen(s1)+strlen(s2)-6
// printf("%c\n",s1[i]);
// }
printf("%s\n",s1);
return 0;
}
char *mycat(char *dst,const char *src){
// int index = 0;
int len = strlen(dst);
// while(src[index] != '\0'){
// dst[len+index] = src[index];
// index++;
// }
// dst[len+index] = '\0';
// return dst;
char *ret = dst;
while(*src != '\0'){
dst[len]= *src;
src++;
len++;
}
dst[len] = '\0';
return ret;
}
#include<stdio.h>
#include<string.h>
int main(){
char str[] = "hello";
char *p = strchr(str,'l');
// 找第二个字符
// p = strchr(p+1,'l');
// 将后面的字符复制给另一个数组
// char *q = (char*)malloc(strlen(p) + 1);
// strcpy(q,p);
// 将字符前的字符串输出
char c = *p;
*p = '\0';
char *t = (char*)malloc(strlen(str) + 1);
strcpy(t,str);
printf("%s\n",t);
free(t);
//复原就 *p = c.
return 0;
}