51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3317|回复: 3
打印 上一主题 下一主题

[原创] 如何在一个字符串中填充前导字符?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-4-28 08:24:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在实际工作中常常遇到在一个字符串前放置前导字符的情况。还有在银行里账户号常常是固定字长,甚至第一位是零。
下面以具有特殊性的零为例给出一个实例。之所以说具有特殊性是由于在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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2010-4-29 00:31:01 | 只看该作者
没人顶,自己顶。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-4-29 10:53:20 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2010-5-2 14:50:49 | 只看该作者
五一前来顶
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-27 19:38 , Processed in 0.068735 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表