试图找出下一个功能的目的究竟是什么?
我理解它正在对字符串进行一些操作 - 获取char指针 - 命令, 检查是否有空格或标签空间......但最后我不明白这个功能在做什么?
void FixCommand(char* command)
{
char newCommand[MAX_COMMAND_SIZE + 1];
char* currChar = command;
int lastConfirmed = 0;
int inputIndex = 0;
while ((*currChar == ' ') || (*currChar == '\t'))
{
++currChar;
}
while (*currChar != 0)
{
if (*currChar != '\n')
{
newCommand[inputIndex] = *currChar;
++inputIndex;
if ((*currChar != ' ') && (*currChar != '\t'))
{
lastConfirmed = inputIndex;
}
}
++currChar;
}
newCommand[lastConfirmed] = 0;
strcpy(command, newCommand);
}
答案 0 :(得分:1)
程序跳过command
字符串中的初始空格/标签,然后将所有字符复制到newCommand[]
,跳过“新行”\n
个字符。它还会查找command
字符串中的中断(空格或制表符),记下它看到的最后一个非空白字符,并标记其位置。最后,command
从第一个非空白到最后一个非空白的部分被复制回command
,删除了\n
个字符。
例如,如果传入的命令字符串如下所示:
" quick brown\nfox\tjumps over the\tlazy dog\t "
然后输出将如下所示:
"quick brownfox\tjumps over the\tlazy dog"
它的目的可能是在将命令字符串传递给不允许\n
和前导/尾随空白的外部系统之前对其进行“清理”。