我一直在改装Valve游戏很长一段时间,但我从来没有擅长的一点是使用char数组来操纵字符串。我真的很想考虑一下我浪费了多少时间。很明显,使用适当的字符串会很好,但由于所有的SDK函数都返回char *,或者将其作为参数使用,所以转换回来和第四次都没有多大作用。就理解它们而言,有没有人有任何好的联系?我在Google上发现的大部分内容都只是片段。改善我的C风格字符串的使用
此外,我想解析一个非常简单的文本文件。基本内容是这样的...
PatchVersion = 1.1.1.2 产品名称= L4D 的appid = 440
我想要得到的PatchVersion和产品名称。我的代码看起来像这样,但真的只是缺乏适当的知识而让我难堪。 strtok只在'='符号之前检索到令牌,strchr给了我一个指向它的位置的指针,但只是不知道一个好的方法。
bool ParseSteamFile()
{
FileHandle_t file;
file = filesystem->Open("steam.inf", "r", "MOD");
if(file)
{
int size = filesystem->Size(file);
char *line = new char[size + 1];
while(!filesystem->EndOfFile(file))
{
char *subLine = filesystem->ReadLine(line, size, file);
Msg("SUBLINE: %s\n", subLine);
char *buffer = "";
if(strstr(subLine, "PatchVersion"))
{
char *c = strtok(subLine, "=");
while(c != NULL)
{
Msg("Token: %s\n", c);
c = strtok(subLine, "=");
}
}
}
}
}
这个问题不应该被标记为C? – wilhelmtell 2010-11-05 01:01:04