我在字符指针变量中有一个值,并且值会动态更改。
例如
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代码才能运行 任何的想法? 谢谢,
答案 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