0
我想提出一個名爲removeString()
功能的錯誤。它的目的是從一個文本爲什麼會出現在我的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);
該方案顯示,只有「兒子」而不是「兒子」。所以如果有人能幫助我,我會很感激。
那麼什麼,它打印'的',然後6退格(從而清除先前打印'的'),最後是'兒子'。按預期工作,我會說。也許用退格字符'\ b'代替並不是實現'removeString'的最明智的方法。 –
請下一次,以正確的問題! – Stargateur
當您打印「\ B」與屏幕後面的東西,這東西覆蓋什麼在屏幕前面。當你用左邊的光標將'\ b'打印到屏幕上時,沒有任何反應。在你的情況下,你首先寫「The」,然後6'\ b'(前4個「後退」,後2個什麼都不做),然後是「兒子」,覆蓋「The」的3個首字符。如果您在舊式打印機上打印真正的紙張,則可能會看到「The」和「son」打印在另一個上面。 – pmg