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