zoukankan      html  css  js  c++  java
  • 替换空格

    以前我总是通过文件来输入测试用例,但是等到再看代码的时候总是不知道关键的步骤在哪里,也不知道是哪个数据出错了;用下面这种方法很方便;

    一本书有言道“如果应聘者是先写单元测试用例,再写解决问题的函数,我相信面试官定会对你刮目相看,因为能做到测试在前、开发在后的程序员实在是太稀缺了,他会毫不犹豫地抛出绿色的橄榄枝。

    #include <iostream>
    #include <string.h>
    
    //不要只顾算法 也要考虑限制条件 
    using namespace std;
    void replaceBlank(char * str)
    {
        
        if(str == NULL)
            return ;
        //下面计算字符串的长度;
        //下面计算空格的个数;
    
        int len = 0;
        int numberOfBlank = 0;
        for(int i=0;str[i]!=0;i++) 
        {
            if(str[i]==' ')
                 numberOfBlank++;
             len++;
        }
        if(len == 0)
            return ;
    //    //2015年3月10日 09:16:532015年3月10日 09:17:032015年3月10日 09:17:062015年3月10日 09:17:082015年3月10日 09:17:092015年3月10日 09:17:12
    //    printf("%s %d
    ",str,len); 
        //计算最终字符串长度;
        int newLen = len + 2 * numberOfBlank;//包括结尾符号; 
        //下面开始从尾到头进行移动,直到两个下标一样的时候为止;
        str[newLen] = 0;
        int indexOfOld = len - 1 , indexOfNew = newLen - 1;
        
        while(indexOfOld != indexOfNew)
        {
            if( str[indexOfOld] != ' ')
            {
                str[indexOfNew] = str[indexOfOld];    
            }else{
                str[indexOfNew] = '0';
                str[--indexOfNew] = '2';
                str[--indexOfNew] = '%';
            }
            indexOfNew --;
            indexOfOld --;    
    
        }     
    }
    void Test(char * testNumber,char * oringialString,char * expectedString)//用来测试replaceBlank函数,由测试用例调用,而调用replaceBlank; 
    {
        replaceBlank(oringialString);
        //printf("%s
    ",oringialString);
        printf("%s ",testNumber);
        if(oringialString == NULL && expectedString == NULL)
            printf("passed
    ");
        else
            
            if(strcmp(oringialString,expectedString) == 0)
                printf("passed
    ");
            else
                printf("failed
    ");
    } 
    void test1()
    {
        const int len = 100;
        char str[len] = "helloWorld";
        Test("test1",str,"helloWorld");
    }
    void test2()
    {
        const int len = 100;
        char str[len] = " helloWorld";
        Test("test2",str,"%20helloWorld");
    }
    void test3()
    {
        const int len = 100;
        char str[len] = "helloWorld ";
        Test("test3",str,"helloWorld%20");
    }
    void test4()
    {
        const int len = 100;
        char str[len] = "hello World";
        Test("test4",str,"hello%20World");
    }
    void test5()
    {
        const int len = 100;
        char str[len] = "hello  World";
        Test("test5",str,"hello%20%20World");
    }
    void test6()
    {
        const int len = 100;
        char str[len] = "hello  Wor ld";
        Test("test6",str,"hello%20%20Wor%20ld");
    }
    void test7()
    {
        const int len = 100;
        Test("test7",NULL,NULL);
    }
    void test8()
    {
        const int len = 100;
        Test("test8","","");
    }
    int main()
    {
        /**/
        test1();
        test2();
        test3();
        test4();
        test5();
        test6();
        test7();
        test8();
        return 0;
    }
  • 相关阅读:
    系统运行性能监控日志
    iptables 操作
    访问dubbo没有权限,通过ip进行跳转服务器,并通过有权限服务器代理访问
    乐观锁
    ES的优化布局
    Docker壳的配置笔记
    expect 实现iterm2自动加载pem登录跳板机
    mybaits-spring demo 记
    Java中volatile修饰符,不稳定标记的用法笔记
    用intellj 建一个spring mvc 项目DEMO
  • 原文地址:https://www.cnblogs.com/dragonfive/p/4334102.html
Copyright © 2011-2022 走看看