从char *变量中解析文件名

时间:2013-07-15 08:56:08

标签: c++ visual-c++ mfc

我在字符指针变量中有一个值,并且值会动态更改。

例如

one case:
   char *ptr = sometext || abc.txt;

second case:
   char *ptr = abc.txt || sometext;

我只需要另一个变量中的文件名。 str = abc.txt

目前我正在使用代码:

CString str;
char* lpszToToken = stLine.GetBuffer(stLine.GetLength());
char* lpszToken = strtok(lpszToToken, "|");
while(lpszToken != NULL)
{
   lpszToken = strtok(NULL, "|");
   str = lpszToken;
}

但它仅适用于第一种情况: 我需要一个genric代码才能运行 任何的想法? 谢谢,

2 个答案:

答案 0 :(得分:0)

我的C生锈了,但为什么不这样:

char* fname = strtok( fileNames, "|");
while (fname != NULL) {
    // do something with the file here..
    processFile( fname);             
    fname = strtok( NULL, "|");         // next.
}

此外,匈牙利表示法是一种可怕的编程方式。它有效地掩盖了&混淆了大多数意义,使透明和简单的问题变得不透明和不透明。丑陋。与你提供的gack相比,看看我的例子有多可读?

你的教练(以及Petzold)很遗憾被误认为是在教你这个。我建议改为编写“识字”代码。

见:

答案 1 :(得分:0)

由于你有CString可用,你可以使用CString :: Find或CString :: Tokenize