C语言-删除字符串中的字符。
发布网友
发布时间:2022-04-23 19:58
我来回答
共5个回答
热心网友
时间:2022-04-17 16:15
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-04-17 17:33
在你的delchar()函数里面,进行覆盖那里应该改成 *p = *(p+1) 如果是*p = *p + 1结果是 先取出 p指向的内存中的字符,然后该字符加1之后再赋值给p所指向的内存。 列入 *p = a; 那*p = *p +1 结果是 *p = b; 而*p = *(p + 1) 是p指针先指向p前面的一个内存单元,再用*取出该内存单元的值,然后赋值给 p 所指向的内存单元 *p追问改了之后结果 是这个 为什么后面会重复为sdd 而不是 sd?
我知道了 for(p=s;p<=s+i;p++) //这里改为<=
{
if(*p==c)
{
q=p;
for(i--;p<=s+i;p++) //这里改为<=
*p=*p+1;
p=q--;
}
}
这样结果就对了 要不然 没有把‘\0’覆盖
热心网友
时间:2022-04-17 19:08
我用数组给你写了个新的
#include<stdio.h>
#include<string.h>
int main (void)
{
void delchar(char s[], char c);
char str[100];
char c;
int i=0;
printf("Input a string:");
// while((str[i]=getchar())!='\n')
// i++;
// str[i]='\0';
gets(str);
printf("Input a char:");
scanf("%c",&c);
delchar(str,c);
printf("After deleted,the string is:");
printf("%s",str);
return 0;
}
void delchar(char s[], char c)
{
int length=strlen(s);
for (int i = 0; i < length; ++i)
{
if (s[i] == c)
{
for (int j = i; j < length; ++j)
{
s[j]= s[j+1];
}
}
}
}
热心网友
时间:2022-04-17 20:59
#include <stdio.h>
#include <string.h>
void delchar(char *p,char ch)
{
char *pch;
while (*p!='\0')
{
if (*p==ch) //相同时
{
for (pch=p;*pch!='\0';pch++) //字符前移
*pch=*(pch+1);
}
p++;
}
}
void main()
{
char a[100];
char ch;
printf("请输入字符串:");
gets(a);
printf("请输入你要删除的字符:");
scanf("%c",&ch);
delchar(a,ch);
printf("删除字符后的字符串:%s\n",a);
}
热心网友
时间:2022-04-17 23:07
int i=strlen(s);
for(p=s;p<s+i;p++)
{
if(*p==c)
{
q=p;
for(i--;p<s+i;p++) //进行覆盖
*p=*p+1;
p=q--;
}
}
中*p=*(p+1);。
C语言-删除字符串中的字符。
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语言删除字符串中的字符。
一、问题描述:从键盘输入一个字符串给str和一个字符给c,删除str中的所有字符c并输出删除后的字符串str。1、输入:第一行是一个字符串; 第二行是一个字符。2、输出:删除指定字符后的字符串。二、设计思路:1、 同插入问题,定义两个字符数组a,b。以及标志删除位置的int型pos。2、用gets函数...
C语言如何实现删除字符串中的字符
s++;s = 0; //将这个字符置为结束符 return s1;};
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语言删除字符串中指定字符的方法有哪些?
在C语言中,删除字符串中所有指定字符的方法有以下几种:1. 基本方法是定义一个函数 `deleteChar`,该函数需要两个参数:字符串 `str` 和要删除的字符 `c`。通过遍历字符串中的每个字符,当遇到与 `c` 相匹配的字符时,执行删除操作。以下是该方法的实现代码:```c void deleteChar(char *str,...
C语言 删除字符串中的指定字符'*',要求用指针,谢谢~
intmain(){ charstr[100];char*p,*q;charc;gets(str);c=getchar();for(p=str,q=str;*p!='\0';p++)//用指针*p去提取str中每一个元素,用指针*q去删除str中需要删除的元素 if(*p!=c)*(q++)=*p;*q=*p;puts(str);return0;} ...
用C语言在字符串中删除指定的字符。
include "stdio.h"include <string.h> int main(){ char a[50],ch;int i,j;printf("输入字符串:");scanf("%s",a);fflush(stdin);printf("输入要删的字符:");scanf("%c",&ch);for(i=0,j=0;i<strlen(a);i++)if(a[i]!=ch)a[j++]=a[i];a[j]='\0';puts(a);retur...
C语言编程:在一个指定的 字符串中删除指定的 字符,并输出该字符串。
include <string.h> int main(int argc, char **argv){ int num = 0;for (int i = 0; i <= strlen(argv[1]); i++)if (argv[1][i] != argv[2][0]){ argv[1][num] = (i == strlen(argv[1])) ? '\0' : argv[1][i];num++;} printf("%s\n", argv[1]);retu...
(C语言)怎样删除一个字符串中的一个字符? 如ABC删除B后为AB
h> void main(){ int i=0, j = 0;char ch, str[100];printf("请输入字符串:\n");gets(str);printf("请输入要删除的字符:\n");scanf("%c",&ch);while(str[j]!=0){ if(str[j]!=ch){ str[i]=str[j];i++;} j++;} str[i]=0;printf("%s\n",str);} ...
用c语言编写程序删除字符串中间的'*'号
i=fun(str,i-1); /*自定义的函数,负责删除'*'*/ printf("%s\n",str+i);/*从第i位(即第一个不是'*'的那一位)开始显示*/ } int fun(char *str,int j){ int i,f1=0,f2=0; /*f1与f2是标志变量,当他俩都为1时,则以删除完了*/ for(i=0;i!=j&&f1*f2==0;){ if...