使用C语言实现strcpy函数和字符串大小写交换

1.使用C语言完成strcpy函数

#include<stdio.h>
#include<assert.h>
#include<string.h>

char *Strcpy(char *dest,const char *src)
{
     assert((src == NULL)||(dest == NULL)    错误的示范//if((src == NULL)||(dest == NULL))
        
return NULL;  //对函数的参数进行检查时需要使用assert函数
if(dest == src)//如果AB串已经是相同的了    
    return dest;
    char *addr = dest;
        while(*src != '')    //或者使用while((*dest++=*src++)'');
        {                注意这样使用 就已经在dest串的结尾加上了
            *dest = *src;    
            dest++;
            src++;
        }
            *dest = '';//当所有的字符都已经赋值就在最后面位置加上
            return addr;
}
//既然已经实现了拷贝 为什么要返回一个char *的指针 //主要是为了实现链式调用 例如这种情况 Strcpy(Dest,Strcpy(Dest1,Src))
int main() { char arr1[] = "hello linux"; char arr2[] = "xiao zou"; printf("before arr1 =%s ",arr1); printf("before arr 2=%s ",arr2); Strcpy(arr1,arr2); printf("after arr1 = %s ",arr1); }

运行结果:

2.使用C语言完成字符串大小写交换

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *ctoC(char *str)
{
    assert(str==NULL)
    return NULL;
    char *res = str;
    while(*str!='')
    {
        if(*str>='a' &&*str<='z')//当首字符是a-z
            *str-=32;
        else if(*str>='A' &&*str<='Z')
            *str+=32;
        *str++;  //指针向后移动
    }
    return res;
}

int main()
{
    char buf[10];
    scanf("%s",buf);
    char *buf1 = ctoC(buf);
    printf("res =  %s
",buf1);
}

运行结果:

 

原文地址:https://www.cnblogs.com/xiaozoui11cl/p/13224452.html