Посимвольный вывод строки на Си

Всем привет! Хотел написать программу, которая будет выводить строки посимвольно. Имеется такой код(на Си не программировал, поэтому строго прошу не судить).

#include <stdio.h>

int main() {
    char *s = "@xxxACK2.00E+1;FF";
    char *p = s;
    while (*p) { 
        printf("%s\n", p);
        p++;
    }
    return 0;
}

Ожидал, что вывод будет посимвольно, но на самом деле вывод такой. Может кто нибудь объяснить как сделать чтобы вывод был посимвольным?

@xxxACK2.00E+1;FF

xxxACK2.00E+1;FF

xxACK2.00E+1;FF

xACK2.00E+1;FF

ACK2.00E+1;FF

CK2.00E+1;FF

K2.00E+1;FF

2.00E+1;FF

.00E+1;FF

00E+1;FF

0E+1;FF

E+1;FF

+1;FF

1;FF

;FF

FF

F


Ответы (2 шт):

Автор решения: Аркадий

Вы выводите строку (%s). Нужно выводить символ.

/* ... */
        printf(
            /* Вывод символа */
            "%c\n",
            /* разыменование указателя */
            *p);
/* ... */
→ Ссылка