c语言中怎样写删除字符串中某个字符的程序啊?

rt,各位大神帮帮忙,就是voiddelete_string(charstr(),charch)该怎么写,希望每一步有注解... rt,各位大神帮帮忙,就是void delete_string(char str(),char ch)该怎么写,希望每一步有注解 展开
 我来答
二三社会事
高粉答主

2019-05-24 · 繁杂信息太多,你要学会辨别
知道答主
回答量:1254
采纳率:0%
帮助的人:32.4万
展开全部

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是想删除第几位。j ,i 是后面for循坏中要使用到的变量。

3、编写printf(“请输入你的字符串”);scanf(“%s”,a);printf(“请输入你想要删除第几位字符”);scanf(“%d”,&c)。

这几行代码主要是显示界面,以及具体想要删除什么字符串以及具体删除第几位字符使用的。

4、继续编写for(i=0;i<strlen(a);i++) ( if(i+1!=c){  b【j】=a【i】; j++;)(         printf(" %s",b);)。

这几行代码逻辑语句是:只要当i+1不等于c时把a【i】里面的字符赋给b【i】,那么这样当i+1=c时不把它赋给b【i】从而实现删除功能。

5、程序编辑完毕,可以进行删除字符了。

金色潜鸟
推荐于2018-05-09 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5692万
展开全部
#include<stdio.h>
void delete_string(char *str,char ch){
int i,L;
L=strlen(str); //字符串长度
for (i=L-1;i>=0;i--){ //从后往前找
if (str[i]==ch) strcpy(&str[i],&str[i+1]); //找到一个,就把后面字符串往前推1格(就删了1个)。
}
}

main(){
char s[]="abmc1m23mXYZm"; // 原字符串
delete_string(s,'m'); // 调用,删去 m
printf("%s",s); //结果
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sktjmd
推荐于2016-04-10
知道答主
回答量:14
采纳率:0%
帮助的人:11.3万
展开全部
void move_t(char str[],int i){
int k;

for (k=i;str[k]!=null;k++){
str[k]=str[k++];

}

}
void delete_string(char str[],char ch){
int i=0;

int flag=1;

while(flag){
if (!str[i]){
flag=0;

break;

}

move_f(str,i); //用来找到的字符之后将字符之后的字符往前移一个

}
}

程序手机打的,不一定对,你按照这个思路来写(我强烈建议你这个程序自己动手写一遍!):
1:遍历找到需要的字符;
2:如果找到字符的话那么就调用move_t()函数用来将这个字符后的字符往前一个来达到删除该字符的效果(原因是对于字符数组是没有删除一个字符的函数或者功能,只能通过移动来达到删除!知道这一点自己动手写程序就简单了!)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伊·梵beec
2013-01-30 · TA获得超过2160个赞
知道大有可为答主
回答量:1897
采纳率:0%
帮助的人:1379万
展开全部
#include <stdio.h>
void delete_string(char *str,char ch)
{
int i,j=0,l=0;
char *p=str;
//将所有的字符ch都用'\0'来替换,用l记录字符串的长度
while(*p)
{
l++;
if(*p==ch) *p='\0';
p++;
}
//定位到第一个'\0'处
while(str[j]!='\0' && j<l) j++;
//将后面的字符往前移
i=j+1;
while(i<l)
{
if(str[i]!='\0')
str[j++]=str[i++];
else
i++;
}
//添加字符串结束符
str[j]='\0';
}
void main()
{
char str[] = "esdesfdsfeee";
delete_string(str, 'e');
printf("%s\n",str);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
AAA大法王
2019-12-23 · 知道合伙人宗教行家
AAA大法王
知道合伙人宗教行家
采纳数:30050 获赞数:200510
佛教客座教授 跟随密宗正规传承 上师 活佛 修行学习密宗秘法

向TA提问 私信TA
展开全部
#include<stdio.h>
void delete_string(char *str,char ch){
int i,L;
L=strlen(str); //字符串长度
for (i=L-1;i>=0;i--){ //从后往前找
if (str[i]==ch) strcpy(&str[i],&str[i+1]); //找到一个,就把后面字符串往前推1格(就删了1个)。
}
}

main(){
char s[]="abmc1m23mXYZm"; // 原字符串
delete_string(s,'m'); // 调用,删去 m
printf("%s",s); //结果
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式