字符串处理路径问题

博主引用3ds导入模型代码时,发现纹理文件须在主目录,为使模型和纹理放在data目录,编写了字符串处理函数addPath,用于从模型文件路径获取目录路径,并将其与纹理文件名组合成新纹理路径,还给出了应用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

7.3

    我在引用别人的一个3ds导入模型的代码的时候,发现他的纹理文件必须在主目录中。但是模型文件*.3ds 文件可以在任何路径下。可见他把纹理的路径设定在了主目录下,但是我想不能看上去很乱,想把模型和模型的纹理放在一个名为data的目录下,(其实纹理的路径只要是和模型文件在一个目录就好)我需要做的就是做个小的字符串处理的函数,作用是从模型文件*.3ds文件的路径中获得模型所在的目录,这个目录的路径加上纹理文件的名字就是纹理的路径咯,呵呵其实好简单。具体的实现如下:

char * addPath(char * filewithpath, char *filename)//为纹理文件加路径使纹理与模型在同一目录下
{
 char * temp = new char[255];//设定新的路径存储的字符数组

 int i = 0;
 int j = 0;
 while(filewithpath[i] != '/0')//查找模型路径的最后一个分割符"/"
 {
  if (filewithpath[i] == '//')//注意"/"是转义符要用"//"
   j = i;
  i++;
 }
 for (i = 0; i <=j ; i++)//把得到的目录的路径放到新的路径的数组中
 {
  temp[i] = filewithpath[i];
  temp[i+1] = '/0';
 }
 i = 0;
 while (filename[i] != '/0')//把纹理名字加近来
 {
  temp[j+i+1] = filename[i];
  i++;
 }
 temp[j+i+1] = '/0'; //加个字符串结束标志
 return temp;
}

应用的时候

CreateTexture(g_Texture[j], addPath(filename, g_3DModel[j].pMaterials[i].strFile), i);//使用纹理文件名称来装入位图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值