一、求字符串的长度
int myLength(const char *p){
int count = 0;
if(NULL==p){ //如果字符串为空 则直接返回0
return 0;
}
while(*p!='\0'){ //判断字符串是否结束
count++;
p++;
}
return count;
}
void main(){
char *ch = "good";
int re = myLength(ch);
printf("%d\n",re);
}
二、连接两个字符串
char * strAdd( char *str1, const char *str2){
if(str1 && str2){ //判断有没有空地址
int count = length(str1)+length(str2)+1;
char *resoult = (char *)malloc(count); //重新分配一个新的空间
char *all = resoult;
while(*str1!='\0'){ //判断第一个字符串是否结束
*resoult++ = *str1++;
}
while(*str2!='\0'){ //判断第二个字符串是否结束
*resoult++ = *str2++;
}
*resoult='\0';
*resoult = NULL;
return all;
}
return NULL;
}
void main(){
char *a = "hellow";
char *b = "word";
char *re = strAdd(a,b);
printf("%s\n",re);
}
三、比较两个字符串的大小
int strCampare(const char *str1,const char *str2){
if(str1==NULL || str2==NULL){ //判断地址是否为空
return -2; //若有空地址返回-2;
}
while (*str1!='\0'){
if(*str1>*str2){
return 1; //如果第一个字符串大,返回1
}
if(*str1<*str2){
return -1; //如果第二个字符串大,返回-1
}
str1++;
str2++;
}
if(*str2!='\0'){
return -1; //如果两个字符串相等 ,返回0
}
return 0;
}
void main(){
char *a = "hellow";
char *b = "word";
int re = strCampare(a,b);
printf("%d\n",re);
}
四、复制字符串
char * strCopy(char *str1,char *str2){
char *p = str1;
if(*str2!='\0' && *str1!='\0'){ //如果两个字符串都不为空,
str1 =str2; //把第二个的地址赋值给第一个
}
return str1;
}
void main(){
char *a = "hiel";
char *b = "word";
printf("%s复制到%s的结果是\n",b,a);
char * re = strCopy(b,a);
printf("%s\n",re);
}