【发布时间】:2020-08-08 21:13:03
【问题描述】:
#include <stdio.h>
#include <string.h>
int main(void)
{
enum { N = 1001 };
char s[N] = "";
fgets( s, sizeof( s ), stdin );
const char *delim = " \t\n";
for ( const char *p = s; *p; )
{
p += strspn( p, delim );
int n = strcspn( p, delim );
if ( n ) printf( "%*.*s\n", n, n, p );
p += n;
}
return 0;
}
此程序输入一个字符串,并为中间的每个空格插入一个换行符,因此每个单词都打印在新行中。
我想知道这个 for 循环和 fgets 函数是如何工作的。
【问题讨论】:
标签: c string enums character fgets