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

如题所述

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");。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-27

算法描述:

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

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

    如果是结束符, 返回

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

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

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

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

    重复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;
        }
    }
}

第2个回答  2014-11-27
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"

第3个回答  推荐于2018-02-27
void delchar(char*str,char ch)
{
char *p=str;
while( *str )
{
if ( *str != ch )
*p++=*str ;
str++ ;
}
*p='\0' ;
}本回答被网友采纳
第4个回答  2015-11-28
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';
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网