51Testing软件测试论坛

标题: 如何在一个字符串中填充前导字符? [打印本页]

作者: ilove51    时间: 2010-4-28 08:24
标题: 如何在一个字符串中填充前导字符?
在实际工作中常常遇到在一个字符串前放置前导字符的情况。还有在银行里账户号常常是固定字长,甚至第一位是零。
下面以具有特殊性的零为例给出一个实例。之所以说具有特殊性是由于在Excel里一般情况下常常去掉最前面的零,当然
你也可以填加其它非零字符(ASCII字符)。
引出一个实际问题,由于测试数据放到了Excel里,结果去掉了最前面的零,而在Loadrunner脚本中又需要它,这时需要把它放回前导位置
,那么可以使用下面的函数。

代码: /*PadToString函数说明:在指定的字符串前面填加前导字符



输入参数说明:

strCharToPad - 被填充的字符串变量。如:123

strFinal - 接受最终填充字符串变量。形如000123。

iFinalLength - 填充后最后字符串长度。如:9。

strValueToAdd - 填充的字符,必须是一个字符。如 "0"



输出结果:

在Loadrunner中做参数化,用strFinal作为参数变量。运行后strFinal的值就是输出结果。

*/

int PadToString(char* strCharToPad, char* strFinal, int iFinalLength, char* strValueToAdd){

        char strTemp[1024] = "";

        int iLoop = 0;

        int iMainLoop = 0;

        int iSubLoop = 0;


        for(iMainLoop = 0; iMainLoop < iFinalLength; iMainLoop++){

                if (iMainLoop == strlen(strCharToPad )) {

                        iLoop = iFinalLength - iMainLoop;

                        for (iSubLoop = 0; iSubLoop < iLoop; iSubLoop++) {

                                strcat(strTemp, strValueToAdd);

                        }

                }

        }

        strcat(strTemp, strCharToPad);

        lr_save_string(strTemp, strFinal);

}
复制代码注:每次只能填充一种字符。如:000123或AAA123.
功能更大强大的需要大家来补充。

本文来自: 天天测试交流(http://www.365testing.com/bbs/) 详细文章参考:http://www.365testing.com/bbs/thread-20758-1-1.html
作者: ilove51    时间: 2010-4-29 00:31
没人顶,自己顶。
作者: PrefTest    时间: 2010-4-29 10:53
这里有个类似的:
http://blog.csdn.net/Testing_is_ ... /03/29/5429151.aspx
作者: ilove51    时间: 2010-5-2 14:50
五一前来顶




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2