zoukankan      html  css  js  c++  java
  • 使用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);
    }

    运行结果:

     

  • 相关阅读:
    基于golang的分布式任务管理系统
    golang sql 包连接池分析
    Go web框架构建三层架构
    004-位置参数变量
    003_1-当前系统语言的相关知识
    003-环境变量
    002-自定义变量
    001--变量概述
    2017-07-04(sudo wc sort)
    优化分页的查询
  • 原文地址:https://www.cnblogs.com/xiaozoui11cl/p/13224452.html
Copyright © 2011-2022 走看看