Как вывести строку выделения, которая меньше размера знака выделения?

Поэтому мой код принимает строку букв, а затем выводит эту строку в виде выделения с размером знака, равным 5. Так, например, если я хочу вывести «Hello World!», Вывод будет таким:

[Hello]
[ello ]
[llo W]
[lo Wo]
[o Wor]
[ Worl]
[World]
[orld!]
[rld! ]
[ld! H]
[d! He]
[! Hel]
[ Hell]

Но проблема в том, что если есть строка букв длиной 8 и размер знака выделения равен 10, то я хочу просто отобразить строку один раз внутри знака выделения. Поэтому, если строка имеет размер, который меньше указанного знака выделения, просто отобразите строку один раз. Например:

Input: 
Activist (the string that I want to output in a sign)
10 (the length of the sign)
Output:
[Activist  ]

Обратите внимание, что в знаке выделения по-прежнему 10 пробелов, и все, что он делает, это просто выводит строку один раз.

Вот мой код. Я сделал это для запуска более одного раза, если указано:

#include <stdio.h>
#include <string.h>

void ignoreRestOfLine(FILE *fp) {
    int c;
    while ((c = fgetc(fp)) != EOF && c != '\n');
}

int main(void) {
    int num_times, count = 0;
    int marq_length, sign = 0;
    scanf("%d ", &num_times);
    char s[100];
    for (count = 0; count < num_times; count++) {
        if (fgets(s, sizeof(s), stdin) == NULL) {
            // Deal with error.
        }    
        if (scanf("%d", &marq_length) != 1) {
           // Deal with error.
        }

        ignoreRestOfLine(stdin);

        size_t n = strlen(s) - 1;
        int i, j;

        if (s[strlen(s) - 1] == '\n')
            s[strlen(s) - 1] = '\0';

        printf("Sign #%d:\n", ++sign);

        for (i = 0; i < n + 1; i++) {
            putchar('[');
            for (j = 0; j < marq_length; j++) {
                char c = s[(i + j) % (n + 1)];
                if (!c)
                    c = ' ';
                putchar(c);
            }
            printf( "]\n" );
        }
    }
}

Вход и выход для этого выглядит следующим образом:

Input:
3
Hello World!
5
Sign #1: (This is the output)
[Hello]
[ello ]
[llo W]
[lo Wo]
[o Wor]
[ Worl]
[World]
[orld!]
[rld! ]
[ld! H]
[d! He]
[! Hel]
[ Hell]
Activist
10
Sign #2: (This is the output)
[Activist A]
[ctivist Ac]
[tivist Act]
[ivist Acti]
[vist Activ]
[ist Activi]
[st Activis]
[t Activist]
[ Activist ]
LOL
2
Sign #3: (This is the output)
[LO]
[OL]
[L ]
[ L]

Все правильно, кроме знака № 2. Как вывести только строку один раз в знак выделения, если длина строки меньше размера знака выделения?