我想要执行以下操作,将字符串视为你好吗我想从 a 打印到 e ,即单词 。我试过这个
char str[] = "how are you";
printf("%*.*s\n", 5, 8, str);
输出
how are
预期输出
are
有人知道如何做到这一点?
答案 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]);