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

2024年11月22日 23:59
有5个网友回答
网友(1):

c语言中书写删除字符串中某个字符的程序的具体操作步骤如下:

1、编写头函数,包括“#include .”与“#include .“。

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

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

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

网友(2):

#include
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;
}

网友(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()函数用来将这个字符后的字符往前一个来达到删除该字符的效果(原因是对于字符数组是没有删除一个字符的函数或者功能,只能通过移动来达到删除!知道这一点自己动手写程序就简单了!)

网友(4):

#include
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 //将后面的字符往前移
i=j+1;
while(i {
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);
}

网友(5):

#include
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;
}