从char*变量分析文件名

Parse a file name from char * variable

本文关键字:文件名 变量 char      更新时间:2023-10-16

我在字符指针变量中有一个值,该值是动态更改的。

例如

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代码来在这两种情况下运行知道吗?谢谢,

我的C已经生锈了,但为什么不使用类似的东西呢

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

此外,匈牙利符号是一种糟糕的编程方式。它有效地隐藏了&混淆了大多数意义,使清晰和简单的问题变得不透明&丑陋的看看我的例子与你提供的gack相比可读性如何?

不幸的是,你的教练(和佩佐德)把这个教错了。我建议写"识字"的代码。

参见:

  • 匈牙利符号的好例子
  • http://www.joelonsoftware.com/articles/Wrong.html

由于您有可用的CString,您可以使用CString::Find或CSString::Tokenize