字符串比较strcmp()
int mystrcmp(char *str1, char *str2){
int i=0;
while(str1[i]!='\0'&&str2[i]!='\0'){
if (str1[i]>str2[i]){
return 1;
} else if (str1[i]<str2[i]){
return -1;
}else{
i++;
}
}
if (str1[i]!='\0')
return 1;
else if (str2[i]!='\0')
return -1;
else
return 0;
}
字符串查找子串strstr()
char * mystrstr(char *s1, char *s2){
if (s1==NULL||s2==NULL){
cout<<"empty str exist!!"<<endl;
exit(0);
}
int state=0;
int i =0 , j=0;
while (s1[i]!='\0'){
if (s2[j]=='\0'){
return s1+state;
}
else if (s1[i] == s2[0]){
state = i;
while (s2[j]!='\0'){
if (s2[j] != s1[i]){
i=state;
j=0;
break;
} else{
j++;
i++;
}
}
}
i++;
}
return NULL;
}
char * mystrstr1(char *s1, char *s2){
char *src, *sub;
if (s1==NULL||s2==NULL){
cout<<"empty str exist!!"<<endl;
exit(0);
}
while (*s1!='\0'){
src = s1;
sub = s2;
do{
if (*sub=='\0'){
return s1;
}
}
while (*src++==*sub++);
s1++;
}
return NULL;
}
字符串复制strcpy()
char *mystrcpy(char *str1, char *str2){
int i = 0;
while (str2[i]!='\0'){
str1[i] = str2[i];
i++;
}
str1[i] = '\0';
return str1;
}