C语言“在字符串中删除指定的字符”?怎么编写程序

如题所述

从字符数组中删除特定的字符,即输入要删除的指定字符,利用for循环找到非指定字符,将非指定字符输出即可。以下为具体的实现方法:

#include<stdio.h> 

int main() 

char str[100],c; 

int j,k; 

printf("please input a string:"); 

gets(str); 

printf("\nEnter a character:"); 

c=getchar(); 

for(j=k=0;str[j]!='\0';j++) 

if(str[j]!=c) 

str[k++]=str[j]; 

str[k]='\0'; 

printf("\n%s",str); 

<pre name="code" class="cpp">please input a string:wqeqwe  

Enter a character:w 

qeqePress any key to continue

c语言

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-13
这个容易,就是把指定位置的字符去掉,也就是说后面的字符覆盖
比如删除指定的字符在字符串中第一个出现的位置
void strdel( char* str, char ch )
{
char *p = str;
while( *p )
{
if( *p==ch )
break;
}
if( *p )
{
while( *p )
{
*p==*(p+1);
p++;
}
}
}本回答被提问者采纳
第2个回答  推荐于2018-03-03
如果删除一个字符,那就简单了。
#include<stdio.h>
void main()
{
int i=0,j,k;
char array[20];
printf("please input this array\n");
scanf("%s",array);
while(array[i++]);//求出字符数组中所含元素的个数
for(j=0;j<i-1;j++)
{
if(array[j]=='a')//假设制定字符为a的话
for(k=j;k<i-1;k++)
array[k]=array[k+1];
}
}
我没在电脑上调试。不对的话告诉我,到时我再改。这电脑上没VC。本回答被网友采纳
第3个回答  2012-06-15
#include<stdio.h>
void main()
{ char a[100];
int i,j;
printf("Enter a string:");
gets(a);
for(i=j=0;a[i]!='\0';i++)
{ if(a[i]!='k')
a[j++]=a[i];}
a[j]='\0';
puts(a);
}
相似回答