亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 求助如何獲取這個值 [打印本頁]

作者: pumaboyd    時間: 2008-12-19 17:23
標(biāo)題: 求助如何獲取這個值
需求:
要求能找到倒數(shù)第二個點(diǎn)之后是vXX(XX是數(shù)字,而且XX位數(shù)不確定),并將其刪除

比如:
char * fileName1 = "D:\\Web\\Image\\g.page.login.gif";
希望得到結(jié)果是"D:\\Web\\Image\\g.page.login.gif"

char * fileName2 = "D:\\Web\\Image\\g.page.login.v32.gif";
希望得到結(jié)果是"D:\\Web\\Image\\g.page.login.gif"

char * fileName3 = "D:\\Web\\Image\\g.page.login.v32.empty.gif";
希望得到結(jié)果是"D:\\Web\\Image\\g.page.login.v32.empty.gif"
作者: c/unix    時間: 2008-12-19 17:47
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: spacegrass    時間: 2008-12-20 11:07
標(biāo)題: 刪除 vXX 樣式字串程序
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

// success return 1. not find return 0, modify the parameter string val
int delete_vxx(char *pDelete){
  char *pTrv = pDelete + strlen(pDelete) - 1; // string tail
  int nDotNum = 0;
  while(pTrv >= pDelete){
    if(*pTrv-- == '.' && ++nDotNum >= 2)
      break;
  }
  if(nDotNum < 2) // dot number is less than 2
    return 0;
  // pTrv point to a dot
  char *pDotPosition = pTrv;
  ++pTrv;
  int nFindFlag = 0;
  while(*pTrv != '.'){
    if((*pTrv == 'v' || *pTrv == "V") && isdigit(*(pTrv + 1))){
       ++pTrv;
       while(isdigit(*pTrv))
          ++pTrv;
       nFindFlag = 1;
       break;
    }
  }
  // pTrv points to a charactor which should be move forward
  if(nFindFlag == 1){
    // find vxx sub string
    while(*pTrv)
      *pDotPosition++ = *pTrv++;
    pDotPosition = '\0'; // new string tail
    return 1;
}
return 0;
}
int main(void)
{
   char arr[] = "e:\\so\\ok.v448uu.gif";
   fprintf(stdout, "original string: %s\n", arr);
   if(delete_vxx(arr))
      fprintf(stdout, "after delete string: %s\n", arr);
   else
      fprintf(stdout, "No such kind of sub string.\n");
  return 0;
}
作者: cugb_cat    時間: 2008-12-20 11:30
用perl的正則,很簡單的




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2