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

程序中不必包含特定的字符串,要求在调试的时候可以随便输入任何字符串... 程序中不必包含特定的字符串,要求在调试的时候可以随便输入任何字符串 展开
 我来答
ziguowen
推荐于2017-12-16 · TA获得超过2723个赞
知道小有建树答主
回答量:785
采纳率:35%
帮助的人:346万
展开全部
算法很多,告诉你一种比较好想的算法!自己编写,练习一下才有收获!
定义一个数组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);
}
//@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@
淘汰之刃vs
2008-12-04 · TA获得超过288个赞
知道答主
回答量:119
采纳率:0%
帮助的人:0
展开全部
#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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柔和又妥当的布丁c
2008-12-04 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:0
展开全部
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();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a4321559
2008-12-04 · TA获得超过521个赞
知道小有建树答主
回答量:236
采纳率:0%
帮助的人:289万
展开全部
#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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
江湖三脚猫Django
2008-12-04 · TA获得超过3495个赞
知道大有可为答主
回答量:3333
采纳率:100%
帮助的人:3161万
展开全部
把注释的两行加上就可以实现删除输入的字符
函数中的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();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式