C语言编写一个函数功能是删除字符串中的字符d

程序中不必包含特定的字符串,要求在调试的时候可以随便输入任何字符串

算法很多,告诉你一种比较好想的算法!自己编写,练习一下才有收获!
定义一个数组char a[10],输入一个字符串给它。再定义一个数组char b[10],把数组a中不是字符d和D的字符赋给数组b即可。很简单的!
//@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@@@
代码如下(已经编译运行过!)如下:
#include "stdio.h"
void main()
{
char a[10],b[10];
int i=0,j=0;
printf("输入字符串赋给数组a[10] :");
scanf("%s",a);
//把数组A一个个赋给数组B,判断一下,排除字符d和D,字符d和D的ASCII码值分别是100和68
for (i=0; i<10; i++)
{
if (100 != a[i] && 68 != a[i] ) //排除d和D字符
{
b[j] = a[i]; //把不是d和D的字符赋给数组b
j++;
}
}
printf("删除d和D字符后的字符串为 :%s\n",b);
}
//@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-12-04
#include <stdio.h>
#include <string.h>
//删除字符函数,参数分别是目标串和要删除的字符
void deleteC(char* str, char del)
{
int i = 0;
int j = 0;
char* ptr = str;
while(ptr[i] != '\0')
{
if (ptr[i] == del)//找到要删除的字符
{
j = i;
//该循环将要删除字符后面的字符
//与前面的接上
while (ptr[j] != '\0')
{
ptr[j] = ptr[j + 1];
j++;
}
}
i++;
}
}
void main()
{
char tmp[20]; //存储输入的字符串
printf("Enter the string:\n");
scanf("%s",&tmp);
printf("%s\n",tmp);

deleteC(tmp, 'd');//删除大写的C

printf("%s\n",tmp);
}
第2个回答  2008-12-04
void main()
{
char temp[100];
char *p = temp;
char test;
int i = 0;
int j;
gets(p);/*取得字符串*/
while(temp[i] != '\0'){/*查找'd'直到字符串结束*/
if(temp[i] == 'd'){
for(j = i; temp[j] != '\0'; j++){/*找到'd',把后面的字符前移一位*/
temp[j] = temp[j+1];
}
}
i++;
}
puts(p);
getch();
}
第3个回答  2008-12-04
#include <string>
#include <iostream>
using namespace std;
void main()
{
char ch[100];
cin.getline(ch,100,'\n');
string str(ch);
int i,j;
for(i=0;i<str.length();i++)
{
if(ch[i]=='d')
for(j=i;j<str.length();j++)
ch[j]=ch[j+1];
}
cout<<ch<<" "<<endl;
}
第4个回答  2008-12-04
把注释的两行加上就可以实现删除输入的字符
函数中的do{}while()循环很经典。
#include<stdio.h>
#include <conio.h>
#define N 20

void char_search(char str[], char c)
{
char *p=str;
do
if (*str!=c)
*p++=*str;
while (*str++);
}

void main()
{
char str[N];
char c='d';
/*
printf("input a char that you wang to delete:");
scanf("%c",&c);*/
printf("input a string:");
scanf("%s",str);
char_search(str,c);
printf("%s\n",str);
getch();
}
相似回答