0
私はremoveString()
という機能を作っています。テキストの文字列を削除するのが目的です。私のリムストリング機能にエラーがあります
例:テキストが「間違った息子」で、「息子」に「間違っている」を削除したい場合は、この関数を使用します。
void removeString(char source[], int start, int numofchrem);
とプログラムは、このようなものです::
プロトタイプがある
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void removeString(char source[], int start, int numofchrem)
{
int i, j, k;
char n[20];
j = start + numofchrem - 1;
for (i = 0; i < numofchrem; i++)
{
if (source[start] == '\0')
break;
source[j] = '\b';
j--;
}
printf("%s", source);
}
int main()
{
char text[] = "the wrong son";
void removeString(char source[], int start, int numofchrem);
removeString(text, 4, 6);
}
私はそれがこの
"the \b\b\b\b\b\bson"
のようだった、ソース内の最初の文字デバッグプログラムを作りました
ソース内のテキストを印刷する場合:
printf("%s",source);
プログラムでは「息子」ではなく「息子」のみが示されました。誰かが私を助けることができたら、私はとても感謝しています。
まあを交換したいものの上に、バック
"son"
(および'\0'
)を移動する必要がありますそして最後に「息子」。期待通りに働いて、私は言うだろう。おそらく、バックスペース文字 '\ b'で置き換えることは、' removeString'を実装するための最善の方法ではありませんでした。 –次回は、適切な質問にしてください! – Stargateur
'\ b'を画面の後ろに印刷すると、前に画面上にあったものが上書きされます。カーソルを左にして '\ b'を画面に印刷すると、何も起こりません。あなたの場合、 "The"の最初の3文字の上に "The"、次に6 '\ b'(最初の4つは "後ろに"、最後は2は何もしません)、そして "son"古いスタイルのプリンタで実際の用紙に印刷していた場合は、「The」と「son」が重ねて印刷されていることがあります。 – pmg