用C语言在字符串中删除指定的字符。

如题所述

#include "stdio.h"
#include <string.h>
int main(){
char a[50],ch;
int i,j;
printf("输入字符串:");
scanf("%s",a);
fflush(stdin);
printf("输入要删的字符:");
scanf("%c",&ch);
for(i=0,j=0;i<strlen(a);i++)
if(a[i]!=ch)
a[j++]=a[i];
a[j]='\0';
puts(a);
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-01-07
#include <iostream>
using namespace std;
char *del(char a[],int &n,char x)
{
int i;
char *c=new char[100];
int k=0;
for(i=0;i<n;i++)
{
if(a[i]==x)
continue;
else
c[k++]=a[i];
}
c[k]='\0';
return c;
}
int main()
{
char a[100];
char c;
cout<<"请输入一个字符串:";
gets(a);
cout<<"请输入一个要删除的字符:";
cin>>c;
int len=strlen(a);
cout<<"删除该字符后的字符串为:";
cout<<del(a,len,c)<<endl;
return 0;
}
这个是用C++写的,方法比较笨,但是通俗易懂,希望能够帮助到您。。稍微改动一下,就能用C语言实现了。。
第2个回答  2011-01-07
思路:用一个新的字符数组来存最后输出的数组。循环比较原数组的所有字符,如果不是要删除的字符就存入该字符数组

int main(int argc, char* argv[])
{
char src[]="12a34a567aa";
char des[50];
char name='a';
int flag=0;//标志变量,用来指向des数组的某个位置
int i;
for(i=0;i<StrLen(src);i++)
{
if(src[i]!=name)
{
des[flag]=src[i];
flag++;
}
}
des[i]='\n';
printf("字符串是%s\n",des);
system("pause");

return 0;
}
第3个回答  2011-01-07
希望对你有所帮助:
#include <stdio.h>
#include <string.h>
#define N 10

void main()
{
char ch[N]={'0'};
char move;//指定要删除的字符
printf("please input a string:");
gets(ch);
printf("your string is:");
puts(ch);
printf("please input the char which you want to move:");
scanf("%c",&move);
for(int i=0;i<N;i++)
{
if(move==ch[i])
{
for(int j=i;j<N;j++)
{
ch[j]=ch[j+1];//将相同的字符覆盖
}
i=-1;//让i再从0开始循环检测
}

}
puts(ch);//输出删除指定字符后的字符串
}
第4个回答  2011-01-08
char* DelStr(char* str1, char* str2)
{
int i,j;
int iLen1,iLen2;
int iFlag,iPos;
char s1[128+1],s2[128+1];

memset(s1,0x00,sizeof(s1));
memset(s2,0x00,sizeof(s2));

strcpy(s1,str1);
strcpy(s2,str2);

iLen1 = strlen(s1);
iLen2 = strlen(s2);

for(i = 0;i<=iLen1 - iLen2;i++)
{
iFlag = 0;
iPos = i;
for(j = 0; j< iLen2; j++,iPos++)
{
if(s1[iPos] != s2[j])
{
iFlag = 1;
break;
}
}

if(iFlag == 0)
{
memmove(s1+i,str1+i+iLen2,iLen1-iLen2);
s1[iLen1-iLen2] = 0;
iLen1 = strlen(s1);
}
}
return(s1);
}

用C语言在字符串中删除指定的字符。
include <string.h> int main(){ char a[50],ch;int i,j;printf("输入字符串:");scanf("%s",a);fflush(stdin);printf("输入要删的字符:");scanf("%c",&ch);for(i=0,j=0;i<strlen(a);i++)if(a[i]!=ch)a[j++]=a[i];a[j]='\\0';puts(a);return 0;} ...

c语言删除字符串中的指定字符串方法
利用C语言删除字符串中所有指定的字符方法如下:1.基本方法是,编写函数fun:deletechar()。这个函数需要接受两个参数的传入,一个为该字符串str,另一个为想删除的字符c。通过对整个字符串的逐个遍历,凡是检测到字符为c,则删除此字符。具体实现代码如下:2.在主函数,只需要接受用户输入的字符串,然...

C语言编程:在一个指定的 字符串中删除指定的 字符,并输出该字符串。
include <stdio.h> include <string.h> int main(int argc, char **argv){ int num = 0;for (int i = 0; i <= strlen(argv[1]); i++)if (argv[1][i] != argv[2][0]){ argv[1][num] = (i == strlen(argv[1])) ? '\\0' : argv[1][i];num++;} printf("%s\\n...

C语言删除字符串中指定字符的方法有哪些?
1. 基本方法是定义一个函数 `deleteChar`,该函数需要两个参数:字符串 `str` 和要删除的字符 `c`。通过遍历字符串中的每个字符,当遇到与 `c` 相匹配的字符时,执行删除操作。以下是该方法的实现代码:```c void deleteChar(char *str, char c) { char *ptr = str;while (*ptr != '\\...

c语言程序中 从字符串s中删除指定的字符c.
printf("删除字符 c 之后字符串为:s\\n",ch,s);} 字符串在存储上类似字符数组 它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串...

C语言如何实现删除字符串中的字符
C语言删除字符串中指定字符可以参考下面的代码:include<stdio.h> int main { char * fun(char * s);char arg[] = "hello.cgi?name1=value1&name2=value2";printf("This value :%s\\n",fun(arg));getchar();return 0;} char * fun(char * s){ char *s1 = s; \/\/s1指向字符串首...

C语言-删除字符串中的字符。
c语言中书写删除字符串中某个字符的程序的具体操作步骤如下:1、编写头函数,包括“#include <stdio.h>.”与“#include <string.h>.“。2、定义两个相同容量的字符串储存的变量 char a【100】; char b【100】。以及整数变量 int c;int i=0,j=0;其中a[100]是存字符串的,b【100】是...

C语言字符串中删除指定字符
include<string.h> \/\/这个头文件可以不用了 void deletechar(char *s,char c) \/\/delete是保留字,改名为deletechar {int i,j;for(i=0;s[i]!='\\0';){if(s[i]==c) \/\/只是两个字符的比较,不需要strcmp函数 for(j=i;s[j]!='\\0';j++)s[j]=s[j+1];else i++; } ...

C语言,利用指针编写程序:删除一个字符串中的某一个字符
2、其次就是要定义两个相同容量的字符串储存的变量 chara[100]; charb[100];。以及整数变量 intc; inti=0,j=0;其中a[100]是存字符串的,b【100】是存你删除对应字符的字符串的,整数C是你想删除第几位。j,i是后面for循坏中要使用到的变量。3、 printf("请输入你的字符串"); scanf("%s...

C语言,将字符串中指定的字符删掉,并调用函数。各位看我错在哪里
include <string.h> void main(){ void delchar(char s[],char c);char s[80];char c;printf("Input a character:\\n");c=getchar();scanf("%s",s);delchar(s,c);} void delchar(char s[],char c){ int j,i;i=strlen(s);for(j=0;j...

相似回答