c++ for循环中,如何改变字符串变量里的部分值 使之于i 和j 相同步变化?????(即循环用cvLoadImage的path自动改变)

在工程中,很多时候需要读取文件,而文件名filename或者path是有一定规律的。这就要求当循环时,i发生变化,filename里的一部分也随着变化。

在matlab里,要实现这个功能很方便,可以用int2str(i)实现,将整形的i转成字符型。 那么在c或者c++下呢??最初用itoa,但我在linux下用不了这个函数。所以放弃了。看了很多资料,也没有直接回答的。

摸索了一天,终于解决。我将我的解决思路附下。

我要实现,当for循环时,路径path的值为  /....../01/01.jpg  , /....../01/02.jpg,   /....../01/03,jpg依次类推,当到01/05.jpg时, 变成/02/01.jpg   /02/02.jpg  /02/03.jpg...........................剩下的我就不写了。下面是实现代码:


  string path = "/ayan/RoiPalmData/00/00.jpg";
     string path1 = "/ayan/RoiPalmData/";
     string path3 = ".jpg";
    for(int i=1; i<9; i++)
        for(int j=1; j<6; j++)
        {


            char name[5] = {path[18], path[19]+i, '/', path[21], path[22]+j};
            string path2 = name;
            string pathS = path1 + path2 + path3;     //拼接
            const char *path = pathS.c_str();    //因为调用cvLoadImage时,路径必须是const char*类型的,所以这里进行了转换
            cout<<path<<endl;
            CreateDate(path);



        }

欢迎大家提出意见,或进行修正。这只是一种实现方法。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值