The goal of the method is to displace each character in str by n.
void *rotate_string_in_place(char* str, unsigned int disp){
for(int i = 0; i < strlen(str); i++){
if(str[i] == '\0') break;
if(str[i] == ' ') continue;
if(str[i] < 'A') continue;
if(str[i] > 'Z' && str[i] < 'a') continue;
if(str[i] > 'z') continue;
unsigned int diff = 0;
if(str[i] >= 'A'&& str[i] <= 'Z'){
if((str[i]+disp) > 'Z'){
diff = 'Z' - str[i];
str[i] = 'A'+(disp-diff-1);
continue;
}
str[i] = str[i] + disp;
continue;
}
if(str[i] >= 'a' && str[i] <= 'z'){
if((str[i]+disp) > 'z'){
diff = 'z'-str[i];
str[i] = 'a'+(disp-diff-1);
continue;
}
str[i] = str[i] + disp;
continue;
}
}
printf("%s\n", str);
}
However on the line where I actually try to set the char to a new value,
str[i] = str[i] + disp;
I get a segfault.