文字列の一部の順序を逆にする関数を作ろうとしています。ポインタを使用するのは初めてで、何らかの理由で文字列の文字の場所にアクセスして部分文字列をコピーできますが、同じ場所に戻すことはできません...
反転した部分文字列を元の場所にコピーしようとすると、次のようになります。
プログラム受信信号SIGSEGV、セグメンテーション違反。0x00007ffff7b5dc66 in ?? ()/lib/x86_64-linux-gnu/libc.so.6から
どんな助けでも素晴らしいでしょう!
これが私がこれまでに持っているものです:
void reverse(char* line, int start, int end){
char str[end-start];
memcpy ( str , line + start , end-start );
reverseSubString ( str );
memcpy ( line + start, str , end-start );
}
void reverseSubString(char* str){
int i, j, len;
char temp;
i=j=len=temp=0;
len=strlen(str);
for (i=0, j=len-1; i<=j; i++, j--)
{
temp=str[i];
str[i]=str[j];
str[j]=temp;
}
}