0

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

例如

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;
}

但它只在第一种情况下工作:我需要一个通用代码在这两种情况下运行任何想法?谢谢,

4

2 回答 2

0

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

于 2013-07-15T13:28:58.050 回答
0

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

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

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

不幸的是,你的导师(和 Petzold)错误地教你这个。我建议改为编写“识字”代码。

看:

于 2013-07-15T09:01:46.183 回答