C语言中如何删除已经输出的一个字符?

C语言中如何删除已经输出的一个字符?比如输出了231,改成23
比如用delchar?

文本模式下指定位置输出

用""覆盖掉

gotoxy(1,1);

printf("1230123");

gotoxy(7,1);

printf("");

例:

#include<stdio.h>

intmain(void)

{

printf("123");

printf("\b%c\b",32);/*注意这里*/

return0;

}

扩展资料

C语言删除字符串前面连续*号

voidfun(char*a)

{

inti=0,j=0;

while(a[j]=='*')j++;

while(a[j])a[i++]=a[j++];

a[i]=0;

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-06-10
代码如下:
#include<stdio.h>

 #include<string.h>

 void delchar(char s[], char c);

 int main(void)

 {

     char c;

     char s[80];

     printf("请输入字符串: ");

     gets(s);

     printf("输入要删除的字符: ");

     scanf("%c", &c);

     delchar(s, c);

     printf("删除之后为:%s", s);

     return 0;

 }

 void delchar(char s[], char c)

 {

     int i, j, len;

     len = strlen(s);

     for(i = 0; i < len; i++) {

         if(s[i] == c) {

             for(j = i; j < len; j++)

                 s[j] = s[j + 1];

             i = i - 1;

         }

     }

 }

第2个回答  推荐于2017-11-23
依据输出装置而定.

字符输出後, 已经储存或显示在输出装置内, 能否删除, 依据输出装置的能力而定.

就显示幕来说, 若支持ASCII控制字符, 我们可以输出"BS 控制字符", 来告知显示幕删除前一个已输出的字符. 但若显示幕不支持(或许是模式不同), 就无法删除.

ASCII的删除控制字符为 0x08, printf的格式化, 为"\b". 也可以上网查ASCII确认.本回答被提问者采纳
第3个回答  2011-05-08
这样就可以删除字符了:
#include<stdio.h>
#include<string.h>
main()
{
char str1[20],str2[20];
int i=0,j=0,n;
printf("请输入一个字符串:\n");
gets(str1);
printf("请输入要删除第几个字符:");
scanf("%d",&n);
while(str1[i])
{
if((i+1)!=n)
str2[j++]=str1[i];
i++;
}
str2[j]='\0';
printf("删除指定字符后的字符串为:\n");
puts(str2);
}
相似回答