String flip using swapping
# Include
Char * reverse_string (char * string) {char * ret = string; // Save the first address of the array char * left = string; // point to the first character char * right of the array; // point to the last non-'\ 0' character of the array char temp; // temporary variable, used to exchange while (* string! = '\ 0') {string ++;} right = string-1; // After the while is executed, the string points to' \ 0 ', string-1 points to the last non-'\ 0' character of the array while (left <right) // when left = right, it indicates that the exchange is complete, the second and the second to the last .... Switch in turn to complete the flip {temp = * left; * left = * right; * right = temp; left ++; right --;} return ret;} int main () {char str [] = "abcd"; // char * str = "abcd" The program crashes and the constant string cannot change printf ("% s \ n ", reverse_string (str); return 0 ;}