2015-02-01 2 views
4

Я понимаю, что, с увеличенной строкой, вы можете распечатать несколько первые символы с:Возможно ли это с помощью printf?

printf(".5s\n",string); 

и с заниженными строками, вы можете подушечку его с пространством:

printf("% 5s\n",string); 

Есть способ достичь обоих из них сразу? т. е. заполнить его 0 или пробелом, если он короткий, и усечь его, если он длинный?

+0

Возможный дубликат [Напечатать часть строки в C] (http://stackoverflow.com/questions/4841219/print-part-of-a-string-in-c) – mpromonet

ответ

11

Да, вы можете просто объединить его к этому:

printf("%5.5s\n", string); 

Так что, если ваша строка 1, выход:

1 
//^ 4 Spaces here 

И если ваша строка 123456, выход:

12345 
    //^ 6 doesn't get displayed 

Кроме того, для получения дополнительной информации о printf() и в качестве ссылки смотрите по этой ссылке: http://www.cplusplus.com/reference/cstdio/printf/

+0

Я не знал вас мог бы это сделать! Благодарю. – user3109672