"Hello World";
char *ptr;
int i = 0;
for(char *end = str + strlen(str) - 1; end = str; ptr++, end--)
{
*ptr = *end;
}
*ptr = '\0';
puts(ptr);
return 0;
}
Хочу задом наперёд вывести, а он не выводит... В чём ошибка?
в цикле попробуй выводить ptr printf("%*s\n", strlen(str), ptr)
*ptr = '\0'; поэтому ты просто строку перезаписываешь на '\0'
А как тогда добавить '\0' в конце?
по длине + 1 записать
#include <stdio.h> #include <string.h> int main() { char *str = "Hello World"; char *ptr; int i = 0; for(char *end = str + strlen(str) - 1; end = str; ptr++, end--) { *ptr = *end; } *(ptr + strlen(ptr) + 1) = '\0'; puts(ptr); return 0; } Чёт не могу сообразить.. Всё равно не выводит..
возми продебаж каждуб итерацию, думаю поймешь что не так
Почему + 1? Да и логика неправильная, ты свапать должен элементы, а ты их затираешь
А ещё... У тебя строковый литерал и ты пытаешься его модифицировать))
Обсуждают сегодня