URL に挿入できるようにテキストをエンコードするプログラムを作成しています。ユーザーに文字列を入力してもらい、特殊文字 (#、%、&、? など) が含まれている場合は、それらを対応する文字コード (%23、%25、%26、%3F など) に置き換えます。問題は、特殊文字の長さが 1 しかなく、コードの長さが 3 であることです。コードは、特殊文字の後の文字を置き換えてしまいます。これは、置換を行うために使用しているコードです。
char *p = enteredCharStr;
while ((p = strstr(p, specialCharArr[x])) != NULL )
{
char *substr;
substr = strstr(enteredCharStr, specialChar[x]);
strncpy(substr, charCodesArr[x], 3);
p++;
}
私のプログラムを入力で使用した場合の出力例: "this=this&that"
this%3Dis%26at
出力を次のようにしたいと思います。
this%3Dthis%26that
私がやろうとしていることを C (ライブラリなし) で実装する方法についてのアイデアはありますか?