Чего вам не хватает, так это того, что в конце SHAHBAZ
есть конечный '\0'
, который вы также «печатаете», но поскольку '\0'
не имеет символьного представления, вы видите то, на что похоже «дополнительный» пробел.
Вот наименьшее изменение, которое я могу придумать для решения именно этой проблемы; добавить:
if (*(p+i)==0) continue; //don't try to print the trailing '\0'
чуть выше существующей линии:
printf("%c ",*(p+i));//prininting chracters
Выход:
S H A
H B A
Z A
Есть и другие вещи, которые я бы сделал по-другому, чем то, как вы их делаете, но это решает ваш точный вопрос, используя ваш стиль кодирования.