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

作者&投稿:漕钥 (若有异议请与网页底部的电邮联系)
编写一个程序,将一个字符串str中指定的字符ch删去,函数原型为void delchar(char~

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';
}

{
char *p=str;
int flag=0;
for(;p!='\0';p++)
if(*p==ch)
{
flag=1;
break;
}
if(!flag)
printf("不存在该字符!")
for(;*p!='\0';p++)
*p=*(p+1);
return flag;
}

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

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

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

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

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

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

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

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



算法描述:

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


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"


void delchar(char*str,char ch)
{
char *p=str;
while( *str )
{
if ( *str != ch )
*p++=*str ;
str++ ;
}
*p='\0' ;
}

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';
}

C语言 编写一个函数,其功能是将字符串中的大写字母改为小写字母,其它字 ...
答:include "stdio.h"void convert(char *str){ for(int i=0; str[i] != '\0'; i++) { if(str[i] >='A' && str[i] <='Z') { str[i] = str[i] - 'A' + 'a';} } } int main(){ char str[20] = "aZcdABxDEF123";convert(str);printf("%s\n", str);return ...

用c语言编程编写函数,实现把一个字符串连接到后面一个字符串。并编写...
答:<string.h>char *my_strcat(char *s1,char *s2){while(*(++s1));while(*s1++=*s2++);return s1;}int main(){char s1[50]={"my name is Bob"},s2[50]={"2011119465"};my_strcat(s1,s2);printf("%s",s1);getch();}我写的一个字符连接函数,-物联网校企联盟技术部 ...

c语言:一个字符串,输入一个字符,编写函数dstr将输入的字符从字符串中...
答:给你个参考参考,写的很不错的,不过不是我写的啦 include <stdio.h> char* dstr(char* s, char c);int main(){ char str[1000];char ch;printf("请输入一个字符串:\t");gets(str);printf("请输入要挖去的字符:\t");scanf("%c",&ch);printf("删除%c后的字符串为:\t",ch);...

c语言 如何将一个字符串的前n个字母后移至尾,其他的按顺序前移?_百度...
答:include <stdio.h> include <string.h>//为了使用memcpy、strlen等字符串函数 define N 5 int main(){ char a[] = "abcdefghijk";int i, j, m;char b[N+1] = {'\0'};//b将成为一个中间储存数组 memcpy(b, a, N);//把a的前N个字符复制到b中,存起来,以供后面使用 m = ...

C语言 题目 编写一个函数,完成将一个字符串中的字符逆序输出,即最后一...
答:这个简单 include<stdio.h> include<string.h> void fun(char *str){ int i=strlen(str)-1;while(i>=0){ printf("%c \n",str[i]);i--;} } 其实我有个应用指针做成递归函数的想法今天时间有点晚不做了

写一个函数,将一个字符串的元音字母复制到另一字符串,然后输出
答:输入n个字符串 依次读取字符串的元素 元音字母有哪些 元音和辅音的口诀表 什么是元音字母 其他类似问题2014-01-04 C语言问题:写一个函数,将一个字符串中的元音字母复制到另一字... 13 2014-02-08 C语言编程 写一函数,将一个字符串中的元音字母复制到另一个字... 1 2015-12-18 c语言问题,编写...

C语言编程:编写一个函数change,要求它能将一个整数字符串转换成一个...
答:include <stdio.h> include <math.h> include <string.h> int change(char *a){ int i;int num=0;for(i=0;a[i];i++)num+=(a[i]-'0')*pow(10,(strlen(a)-1-i));return num;} main(){ char a[10];int num;gets(a);num=change(a);printf("%d",num);} ...

C语言将一个字符串的第0,2,4,6,8……位置的字符复制到另一个字符串中...
答:include<stdio.h> include<string.h> intmain(){ charstr1[]="123456",str2[7];inti,j=0,len;len=strlen(str1);for(i=len-1;i>=0;i--){ str2[j++]=str1[i];} str2[6]='\0';printf("%s",str2);return0;} //方法二指针法 include<stdio.h> include<string.h> intmain...

C语言函数题,编辑一段函数,将输入的字符串的前三个字母移到后面!
答://函数,输入字符串,返回字符串前三字母。publicfunctiongetStoreName($str){ one=mb_substr($str,0,1,'utf-8');two=mb_substr($str,1,2,'utf-8');three=mb_substr($str,2,3,'utf-8');if(preg_match('/^[\x7f-\xff]+$/',$one)){ one=getFirstCharter($one);} if(preg_...

编写一个函数delchar(s,c),该函数将字符串s中出现的所有c字符删除
答://程序功能:编写一个函数delchar(s,c),该函数将字符串s中出现的所有c字符删除。// 在主程序中输入一个字符c和一个字符串s,调用delchar(s,c)函数删除字符串s中 // 所有的c字符,然后输出删除后的字符串。//例 如:输入字符a和字符串li wang zha jin xiao,输出:li wng zh ji...