以前我总是通过文件来输入测试用例,但是等到再看代码的时候总是不知道关键的步骤在哪里,也不知道是哪个数据出错了;用下面这种方法很方便;
一本书有言道“如果应聘者是先写单元测试用例,再写解决问题的函数,我相信面试官定会对你刮目相看,因为能做到测试在前、开发在后的程序员实在是太稀缺了,他会毫不犹豫地抛出绿色的橄榄枝。
#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; }