c语言中怎样写删除字符串中某个字符的程序啊?
发布网友
发布时间:2022-04-22 20:27
我来回答
共5个回答
热心网友
时间:2022-05-02 16:56
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、程序编辑完毕,可以进行删除字符了。
热心网友
时间:2022-05-02 18:14
#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;
}
热心网友
时间:2022-05-02 19:49
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()函数用来将这个字符后的字符往前一个来达到删除该字符的效果(原因是对于字符数组是没有删除一个字符的函数或者功能,只能通过移动来达到删除!知道这一点自己动手写程序就简单了!)
热心网友
时间:2022-05-02 21:40
#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);
}
热心网友
时间:2022-05-02 23:48
#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;
}