【LR】C语言指针,函数调用simple

Action()
{


 char arr1[] = "abcdefg";  
    char arr2[64];  
    char a[20] = "Rewrite ";  
    char *p = "strcat!";  
    char * str="testroad";


    char *strNo7 = "aBc8873#Te";
    char *descNo7;
int lenNo7=strlen(strNo7);
descNo7=(char *)malloc(lenNo7*sizeof(char *));



Factorial();//第一题


ArrLen();//第二题


prime();//第三题


//--------第四题-----------------------------------------------------


strcpy(arr2, arr1); 
lr_output_message("第四题:重写strcpy函数:%s",arr2);


//第五题
    lr_output_message("第五题:重写strcat函数:%s", my_strcat(a, p));  
//第六题
     lr_output_message("第六题:重写srtrchr函数:%s",fun_strrchr(str,'t'));


//


     fun_No7(strNo7,descNo7);
     lr_output_message("第七题:处理后的字符串为%s",descNo7);






return 0;
}


//1.试写一函数,求n的阶乘
void Factorial(){


    int n,i,s=1;
n = 5;
    for(i=1;i<=n;i++)
s=s*i;
//lr_output_message("%d",n);


lr_output_message("第一题:5的阶乘是:%d",s);


}


//2.试写一函数,求int a[]={12,43,56,14,78,16,50,26,30,40};的中位数


void ArrLen(){


int a[]={12,43,56,14,78,16,50,26,30,40};


int len;


len = sizeof(a)/sizeof(int);


lr_output_message("第二题:数组a的长度为%d",len);


}


//3.试写一函数,求100以内所有素数之和


void prime(){
int i,j;


for(i =2;i<=100;i++){
for(j = 2;j<i;j++){
if(i%j == 0)
break;
}
if(i == j)
              
lr_output_message("第三题:100以内的素数%d",i);
}


}


//4.重写strcpy函数


char* strcpy (char* dest, const char* src)
{
  char* p = dest;   // 复制dest 的副本使用,dest本身要用作返回值
  while ((*p++ = *src++) != '\0');  // 逐个复制src串的字符到p串,直到0结束
  return dest;  // 返回 dest
}


//5.重写strcat函数


char * my_strcat(char *dst, const char *src)  
{  
    char *start = dst;  
    int len_dst = strlen(dst);  
    dst+=len_dst;  
    while (*dst++ = *src++)  
    {  
        ;  
    }  
    return start;  
}


//6. 重写srtrchr函数,实现查找字符串中指定字符最后一次出现时,所有的字符输出,将其中指定字符串的小写字母变成对应的大写字母并输出。如字符串“testroad”,指定字符串为't',则输出"Troad"


char *fun_strrchr(char *str,char a){


    int len=strlen(str);
    int t_len;
    char * tmp =(char *)malloc(len*sizeof(char));
    str=str+len-1;


    while(len--){


        if (*str==a) {


            break;
        }
        str--;  
    }


   strcpy(tmp, str);


    *tmp = *tmp - 32; //转换大写


  return tmp;
}


// 7.定义一个函数,实现对字符串做如下操作:当字符为字母时,大小写互换,当字符为数字时,原样输出,当有其它字符出现时,结束操作,返回已处理的字符串


char *fun_No7(char *strNo7,char *descNo7){


    while (*strNo7 != '\0') {


        if((*strNo7<=90&&*strNo7>=65)||(*strNo7<=122&&*strNo7>=97)){


if((*strNo7>='A')&&(*strNo7<='Z'))
*descNo7=*strNo7+32;
else if((*strNo7>='a')&&(*strNo7<='z'))
*descNo7=*strNo7-32;
descNo7++;
strNo7++;
        }else if(*strNo7<=57&&*strNo7>=48){
            *descNo7=*strNo7;
            descNo7++;
            strNo7++;


        }else 
        {
         *descNo7='\0';
         break;
        }
    }


    return descNo7;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值