重写c语言中的几个字符串函数

        一、求字符串的长度

 

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);
 
}

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java,如果我们想要根据字符串进行排序,可以通过重写`compareTo`方法来实现。`compareTo`方法是在`Comparable`接口定义的,它用于比较两个对象的大小关系。 下面是一个示例代码,展示了如何重写`compareTo`方法来根据字符串进行排序: ```java import java.util.Arrays; public class StringSortingExample implements Comparable<StringSortingExample> { private String value; public StringSortingExample(String value) { this.value = value; } public String getValue() { return value; } @Override public int compareTo(StringSortingExample other) { return this.value.compareTo(other.getValue()); } public static void main(String[] args) { StringSortingExample[] examples = new StringSortingExample[3]; examples[0] = new StringSortingExample("banana"); examples[1] = new StringSortingExample("apple"); examples[2] = new StringSortingExample("orange"); Arrays.sort(examples); for (StringSortingExample example : examples) { System.out.println(example.getValue()); } } } ``` 在上面的示例,我们创建了一个`StringSortingExample`类,它实现了`Comparable`接口,并重写了`compareTo`方法。在`compareTo`方法,我们使用了`String`类的`compareTo`方法来比较两个字符串的大小关系。 然后,我们创建了一个包含三个`StringSortingExample`对象的数组,并使用`Arrays.sort`方法对数组进行排序。最后,我们遍历数组并打印排序后的结果。 运行上述代码,输出将会是: ``` apple banana orange ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值