我一直在学习一些聪明的 C 函数,它们需要一个循环,但不需要执行循环体(如strcpy()
),因此只有一行长。
只是出于兴趣,有没有办法\n
像这样将所有换行符与空格的替换减少到一行?
目前我有
char* newline_index;
while (newline_index = strchr(file_text, '\n'))
{
*newline_index = ' ';
}
我想做这样的事情:
while (*strchr(file_text, '\n') = ' ');
但当然,当 strchr 返回 null 时,我会尝试取消引用空指针。
我知道使用 strchr 是作弊,因为它包含更多代码,但我想看看是否有一种仅使用标准 c 函数的方式来做到这一点。
编辑:在一些帮助下,这是我想出的最好的:
char* newline_index;
while ((newline_index = strchr(file_text, '\n')) && (*newline_index = ' '))