使用printf从一个位置打印到另一个位置

时间:2015-06-14 16:44:50

标签: c printf

我想要执行以下操作,将字符串视为你好吗我想从 a 打印到 e ,即单词 。我试过这个

char str[] = "how are you";
printf("%*.*s\n", 5, 8, str);

输出

how are

预期输出

are

有人知道如何做到这一点?

3 个答案:

答案 0 :(得分:0)

字符串中的字符从0开始索引,因此a位于索引4处。通过将&str[4]传递给printf,printf将从a开始,并打印为精度指定的许多字符。

printf("%.*s\n", 3, &str[4]);

答案 1 :(得分:0)

您正在指定字段宽度和要打印的字符数。但是,字符串总是从指针传递开始,没有"开始偏移"说明符,因为这是不必要的。有关格式说明符,请参阅here

对于您的代码,这将是printf("%.*s", width, str + start)

请注意,&str[start]相同。

答案 2 :(得分:0)

尝试使用此代码

printf("%.*s\n", 3, &str[4]);