Чтобы напечатать символ с printf()
, вам нужно использовать соответствующий спецификатор формата, %c
, например:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char* string = malloc(sizeof(char) * 16);
strcpy(string, "red");
for(size_t i = 0; i < strlen(string); ++i)
{
printf("%c\n", string[i]);
}
return 0;
}
Вывод:
r
e
d
Как прокомментировал @jonathanLeffler, putchar(string[i]);
также справился бы с задачей.
В вашей попытке что-то пошло не так, как эта строка *:
printf("%s\n", &string[i]);
который из-за спецификатора формата %s
для строк будет печатать всю строку до конца (встречается терминатор NULL), начиная с символа i
.
В обратном порядке спроектировано из примера выходных ваших и пост.