/********我的字符串拷贝函数********/
void my_strcpy(void){
//strcpy(arr,"Hello");
char dest_arr[N]="hellor";
char src_arr[N]="worddddd";
int dest_len=sizeof(dest_arr);
int src_len=sizeof(src_arr);
if(dest_len>=src_len){
int i;
for(i=0;i<strlen(src_arr);i++){
dest_arr[i]=src_arr[i];
}
dest_arr[i]=0;
printf("%s\n",dest_arr);
}
else printf("目的字符串范围窄\n");
}
/***************************************
* 我的字符串拷贝函数(指针版)
****************************************/
char * my_strcpy(char *dest,char *src){
if(*dest==NULL||*src==NULL){
return -1;
}
char *p=dest;
char *q=src;
if(strlen(dest)>=strlen(src)){
while(*q){
*p=*q;
p++;
q++;
}
return dest;
}
else return -2;
}
/********我的字符串比较函数********/
int my_strcmp(void){
char dest_arr[N]="hellor";
char src_arr[N]="word";
int i;
int dest_len=strlen(dest_arr);
int src_len=strlen(src_arr);
int size=(dest_len>=src_len)?src_len:dest_len;
for(i=0;i<size;i++){
if(dest_arr[i]==src_arr[i]){
continue;
}
else if(dest_arr[i]<src_arr[i]){
return 1;
}
else if(dest_arr[i]>src_arr[i]){
return -1;
}
return 0;
}
}
/*****我的字符串连接函数*****/
void my_strcat(void){
char dest_arr[N]="hellor";
char src_arr[N]="word8888";
int i;
int dest_len=strlen(dest_arr);
for(i=0;i<sizeof(dest_arr)-1;i++){
dest_arr[i+dest_len]=src_arr[i];
}
dest_arr[i+dest_len]=0;
printf("%s\n",dest_arr);
}
/******我的字符串连接函数(指针版)******/
方式1
int my_strcat(char *dest_arr,char *src_arr){
if(NULL==dest_arr||src_arr==NULL){
return -1;
}
int i=0;
int dest_len=strlen(dest_arr);
int src_len=strlen(src_arr);
while (i<src_len) {
*(dest_arr+(i+dest_len))=*(src_arr+i);
i++;
}
printf("%s\n",dest_arr);
return 0;
}
方式2
int my_strcat(char *dest_arr,char *src_arr){
if(NULL==dest_arr||src_arr==NULL){
return -1;
}
char *temp_src=dest_arr;//中间变量指针移动
while ( *temp_src){
*temp_src++;
}
while ( *src_arr) {
*temp_src++=*src_arr++;
}
*temp_src=0;
printf("%s\n",dest_arr);//目的指针指向不变
return 0;
}
网友评论