c语言编写函数,将一个字符串str中指定的字符ch删去,函数原型是void delchar(char*str,char ch)

 我来答
刺友互
高粉答主

2019-06-20 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:73.3万
展开全部

1、打开visual C++ 6.0-文件-新建-文件-C++ Source File。

2、定义变量:#include <stdio.h>void main(){    char c1,c2,c3;                                      /*定义字符变量*/。

3、输入一个字符:printf("输入一个字符,使用getche函数接收\n");         /*提示用户输入一个字符*/ c1=getche();                                    /*使用getche()函数接收*/printf("\n");                                       /*输出一行空行*/。

4、输入一个字符: printf("输入一个字符,使用getch函数接收\n");  。

5、输入一个字符:printf("输入一个字符,使用getchar函数接收\n")。  /*提示用户输入一个字符*/

c3=getchar(); /*使用getchar()函数接收*/。

6、输出结果:printf("\n输入的这三个字符是:\n");  /*输出一行空行*/ /*将这些字符输出*/

putchar(c1); putchar(c2);putchar(c3);printf("\n");。

bignode
2014-11-27 · TA获得超过2664个赞
知道大有可为答主
回答量:1427
采纳率:75%
帮助的人:549万
展开全部

算法描述:

  1. 定义两字符指针,一个作为读取指针,另一个作为写入指针,写指针指向字符串的头部;

  2. 将写指针向后移定位到第一个要替换字符或结束符,

    如果是结束符, 返回

    否则,读指针 = 写指针加1

  3. 如果 读指针指向的字符不是要替换字符或结束符, 将读指针内容 赋给写指针; 两指针后移;

    否则  如果 读指针指向的是要替换字符, 读指针后移;

             否则 将读指针内容 赋给写指针, 返回.

  4. 重复3.


代码如下:

void delchar(char*str,char ch)
{
    char * w = str, * r;
    while( *w != ch && *w !='\0') w++;
    if( *w == '\0') 
        return ;
    r = w + 1;
    for(;;)
    {
        if( *r != ch && *r !='\0') 
            *w++ = *r++;
        else if( *r == ch )
            r++;
        else
        {
            *w = *r;
            return;
        }
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
泥潭里的金鱼8bb48
2014-11-27 · TA获得超过2804个赞
知道小有建树答主
回答量:371
采纳率:100%
帮助的人:19.8万
展开全部
void delchar(char *str,char ch)
{
    #define MAX_SIZE 256
    char ts[MAX_SIZE];
    int len,i,j=0;
    memset(ts,0,MAX_SIZE);
    #undef MAX_SIZE
    len = strlen(str);
    
    for(i = 0;i< len;i++){
        if(str[i]!=ch){
            ts[j] = str[i];
            j++;
        }
    }
    memset(str,0,strlen(str));
    memcpy(str,ts,strlen(ts));
}
char* ss = "jiang";
delchar(ss,'a');
// ss = "jing"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
推荐于2018-02-27 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6459万
展开全部
void delchar(char*str,char ch)
{
char *p=str;
while( *str )
{
if ( *str != ch )
*p++=*str ;
str++ ;
}
*p='\0' ;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2015-11-28 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
void delchar(char* str, char ch) {
char *p, *q;
p = q = str;
while (*p) {
if (*p == ch) {
p++;
} else {
*q = *p;
q++;
p++;
}
}
*q = '\0';
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式