Можно создать дубликат:
How to reverse a string in place in c using pointers?Как правильно свернуть строку?
Я пытался изменить строку с помощью C. происходит ошибка сегментации. Любая идея почему?
Вот мой код:
#include <stdio.h>
#include <string.h>
int main(void)
{
char *str1 = "abbd";
char *str2;
str2 = str2 + strlen(str1)-1;
while(*str1 != '\0')
*(str2--) = *(str1++);
printf("%s", str2);
return 0;
}
Даже если вы обнаружите ошибку сегментации, она не изменит строку. Можете ли вы понять, почему? – kindall
Даже если вы исправите ошибку, которую все указали на вас, невозможно изменить вашу строку на месте, потому что эта строка не модифицируется. Вы не можете изменять строковые литералы. –