C字符串操作函数的实现详细解析

时间:2022-06-01 12:46:17

1. strlen(),计算字符串长度  

?
1
2
3
4
5
6
int strlen(const char string) 
  int i=0; 
  while(string[i]) i++; 
  return i; 

2. strcpy(), 字符串拷贝.   

?
1
2
3
4
5
char *strcpy(char *destination, const char *source) 
  while(*destinaton++=*source++); 
  return (destination-1); 
}

3. strcat(), 字符串的连接.   

?
1
2
3
4
5
6
7
char *strcat(char *target,const char *source) 
  char *original=target; 
  while(*target) target++; // Find the end of the string 
  while(*target++=*source++); 
  return(original); 
}

4. streql(), 判断两个字符串是否相等.   

?
1
2
3
4
5
6
7
8
9
int streql(char *str1,char *str2) 
  while((*str1==*str2)&&(*str1)) 
  
    str1++; 
    str2++; 
  
  return((*str1==NULL)&&(*str2==NULL)); 
}

5. strchr(), 在字符串中查找某个字符.   

?
1
2
3
4
5
6
char *strchr(const char *string,int letter) 
  while((*string!=letter)&(*string)) 
    string++; 
  return (string); 
}

6. chrcnt(), 计算某个字符在字符串中出现的次数.  

?
1
2
3
4
5
6
7
int chrcnt(const char *string,int letter) 
  int count=0; 
  while(*string) 
    if(*string==letter)count++; 
  return count; 
}

7. strcmp(), 判断两个字符串是否相等.  

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int strcmp(const char *str1,const char *str2) 
  while((*str1==*str2)&&(*str1)) 
  
    str1++; 
    str2++; 
  
  if((*str1==*str2)&&(!*str1)) //Same strings 
    return o; 
  else if((*str1)&&(!*str2)) //Same but str1 longer 
    return -1; 
  else if((*str2)&&(!*str1)) //Same but str2 longer 
  else
  return((*str1>*str2)?-1:1); 
}