第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);
}