c语言编写一个程序,实现查找一个字符串中的特定字符,并将其删除. 一个c语言编程题,从字符串中删除特定字符

\u7528C\u8bed\u8a00\u7f16\u5199\u4e00\u4e2a\u7a0b\u5e8f\uff08\u8f93\u5165\u4e00\u6bb5\u5b57\u7b26\u4e32\uff0c\u5e76\u8bbe\u5b9a\u4e00\u4e2a\u5b57\u6bcd\uff0c\u5982\u679c\u5b57\u7b26\u4e32\u4e2d\u6709\u8fd9\u4e2a\u5b57\u6bcd\uff0c\u5c31\u628a\u8fd9\u4e2a\u5b57\u6bcd\u5220\u9664\uff09

#include "stdio.h"
#define MaxLen 256
main()
{
char ch;
char str[MaxLen];
memset(str,0,sizeof(str));
printf("\u8f93\u5165\u5b57\u7b26\u4e32\n");
scanf("%s",str);
printf("\u8f93\u5165\u5220\u9664\u5b57\u7b26\n");
scanf("%c",&ch);
int len = strlen(str);
int cur = 0;
for( int i=0;i<len;i++)
{
if( ch==str[i] ) continue;
str[cur]=str[i];
cur++;
}
str[cur]='\0';
printf("str=%s\n",str);
getch();
}

\u4f60\u7684\u4ee3\u7801\u4e2d *(--s)=*(++s);\u8fd9\u53e5\u6709\u95ee\u9898\uff0c\u8fd9\u53e5\u6267\u884c\u987a\u5e8f\u662f\u5148\u6267\u884c\u4e24\u8fb9\u7684\u81ea\u52a0\u548c\u81ea\u51cf\u64cd\u4f5c\uff0c\u6700\u540e\u518d\u6267\u884c\u8d4b\u503c\uff0c\u6240\u4ee5\u5b9e\u9645\u4e0a\u662f\u628a\u81ea\u5df1\u7684\u503c\u8d4b\u7ed9\u4e86\u81ea\u5df1\uff0c\u6240\u4ee5\u5b57\u7b26\u4e32\u6beb\u65e0\u53d8\u5316\uff0c\u6539\u6210*(s) = *(s+1);\u5c31\u597d\u4e86\uff0c\u5176\u4ed6\u8bed\u53e5\u4e0d\u7528\u52a8\u3002

一、算法描述

逐个比较字符串source中的字符,若当前i位置的字符等于待删除字符ch,则i+1..len-1之间的子串整体前移;如此反复,直到所有待删除字符都找到并被删除为止。


二、操作过程


三、参考程序

#include <stdio.h>
#include <string.h>

/* 移除字符串source中的所有ch字符 */
void remove(char *source, char ch);

void main()
{
char source[1000];
char ch;

printf("请输入一个字符串:");
gets(source);
printf("请输入待删除字符:");
ch = getchar();

remove(source, ch);

printf("新的字符串:");
puts(source);
}

/* 移除字符串source中的所有ch字符 */
void remove(char *source, char ch)
{
int i, j;
int len = strlen(source);

for(i=0; source[i]!='\0'; i++)
{
if(source[i] == ch)
{
for(j=i+1; source[j]!='\0'; j++)
{
source[j-1] = source[j];
}
source[j-1] = '\0';
}
}
}


四、运行测试

请输入一个字符串:How are you?
请输入待删除字符:o
新的字符串:Hw are yu?


挑出其中需要的字符存回来就行了

#include "stdio.h"

#include "string.h"

#include "stdlib.h"

void delChar(char *str,char m)

{

    int len=strlen(str);

    int i,j=0;

    char *p=(char *)malloc(len*sizeof(char));

    memset(p,0,len);

    for(i=0;i<len;i++)

    {

          if(*(str+i)!=m)

            *(p+j++)=*(str+i);

    }

    memset(str,0,len);

    strncpy(str,p,strlen(p));

    free(p);

}

int main()

{

    char str[100]={0};

    char del;

    scanf("%s %c",str,&del);

    delChar(str,del);

    puts(str);

   

}

结果:



char chr[5] = "abccd";
char chr1[1] = "c";
int j=0;
for(int i =0;i<5;i++)
{
if(chr[i]=="c")
j++;//先算出有几个符合的
}
char chrNew[j];
int m=0;
for(int k =0 ; k<5;k++)
{
if(chr[k]!="c")
chrNew[m] = chr[k];
m++;
}
此时获得的chrNew就是新的删除之后的字符串了
基本类型中不支持删除操作,所以实际上就是一个新的字符串。

#include<stdio.h>
#include<string.h>
main()
{char a[80];
int i,j,pos,y;
char ch;
while(true)
{
printf("请输入一行字符串:\n");
gets(a);
printf("请输入要删去的字符:\n",ch);
scanf("%c",&ch);
for(i=0;i<strlen(a);i++)
if(a[i]==ch)
{ pos=i;
a[pos]=' ';
}
for(j=pos;j<strlen(a)-1;j++)
a[j]=a[j+1];
a[strlen(a)-1]='\0';
printf("%s\n",a);
printf("退出输入0,继续输入1:\n");
scanf("%d",&y);
if(y==1)
scanf("%c",&ch);
if(y==0)
break;
}

这个比较简单,先strchr查找下,然后memmov就可以了

  • 浣跨敤c璇█缂栧啓绋嬪簭,鎵惧嚭浜斾釜鏁颁腑鍜屽钩鍧囧兼渶涓烘帴杩戠殑涓涓鏁
    绛旓細include <stdio.h> include <math.h> int main(){ int a[5];int i;int flag = 0;float sum = 0,aver;float min ;printf("input 5 numbers:");for(i = 0; i < 5; i++){ scanf("%d",&a[i]);sum = sum+a[i];} aver = sum/5;min = fabs(a[0]-aver);for(i = 0...
  • 鐢–璇█瀹氫箟涓涓3*3鐨勪簩缁存暟缁,缂栧啓涓涓▼搴忔煡鎵骞惰緭鍑烘浜
    绛旓細include<stdio.h>int main(){ int nums[3][3]={{8,9,3},{6,5,4},{2,1,9}}; int i,j,cloSum[3]={0},rowSum[3]={0},*min=&nums[0][0]; double rowAve[3],cloAve[3]; printf("鍘熸暟缁勶細\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++...
  • 鐢╟璇█缂栧啓绋嬪簭 杈撳叆涓涓姝f暣鏁皀,姹1鍒皀鐨勬暟涓1鍑虹幇鐨勪釜鏁
    绛旓細/*鐢╟璇█缂栧啓绋嬪簭 杈撳叆涓涓姝f暣鏁皀锛屾眰1鍒皀鐨勬暟涓1鍑虹幇鐨勪釜鏁*/ include"stdio.h"int count(int n){ int i,j,c=0;for(i=1;i<=n;i++){ j=i;while(j!=0){ if(i%10==1) /*鍒ゆ柇浣嶆暟涓槸鍚︽湁1*/ { c++;} j=j/10; /*璁╂暟闄や互鍗佽浠栧師鏉ョ殑楂樹綅鍙樹负浣庝綅锛屽嵆鍘熸潵鐨勫崄浣...
  • 鐢–璇█缂栧啓涓涓▼搴,妫鏌ヤ粠閿洏杈撳叆鐨勪竴琛屽瓧绗︿腑鏈夋棤鐩搁偦涓ゅ瓧绗︾浉鍚...
    绛旓細include<stdio.h> include<string.h> main( ){ char str[1000];char prv;int i,length,have=0;gets(str);length=strlen(str);prv=str[0];for(i=1;i<length;++i){ if(prv==str[i]) have=1;prv=str[i];} if(have) printf("yes\n");else printf("no\n");getch();} ...
  • 甯繖鍋氫釜C璇█鐨勯鍚!鏈夌偣绠鍗曘鐢–璇█缂栧啓涓涓閾捐〃瀹炵幇鎻掑叆銆佸垹闄ゃ佹煡...
    绛旓細} main(){ int number; /*淇濆瓨浜烘暟鐨勫彉閲*/ stud *head; /*head鏄繚瀛樺崟閾捐〃鐨勮〃澶寸粨鐐瑰湴鍧鐨勬寚閽*/ number=n;head=creat(number); /*鎶婃墍鏂板缓鐨勫崟閾捐〃琛ㄥご鍦板潃璧嬬粰head*/ } 杩欐牱灏鍐濂戒簡涓涓鍙互寤虹珛鍖呭惈n涓汉濮撳悕鐨勫崟閾捐〃浜嗐傚啓鍔ㄦ佸唴瀛樺垎閰嶇殑绋嬪簭搴旀敞鎰忥紝璇峰敖閲忓鍒嗛厤鏄惁鎴愬姛杩涜妫娴嬨
  • 缂栧啓涓涓猚璇█绋嬪簭,瀹炵幇褰曞叆瀛︾敓瀛﹀彿鍜屽鍚嶄俊鎭殑鍔熻兘
    绛旓細include<stdio.h> include<stdlib.h> intmain(void){ chars[10];//濮撳悕 intnum;//瀛﹀彿 printf("璇疯緭鍏ュ鍚嶏細\n");gets(s);printf("璇疯緭瀛﹀彿锛歕n");scanf("%d",&num);printf("濮撳悕鏄細%s\n瀛﹀彿鏄細%d\n",s,num);system("pause");return0;} ...
  • 鐢╟璇█缂栧啓绋嬪簭,鍏堣緭鍏ヤ竴缁勫鐢熸垚缁,鐢-1琛ㄧず杈撳叆缁撴潫,鐒跺悗杈撳叆鏌愪竴...
    绛旓細閲囩撼鐜:42% 鏉ヨ嚜:鑺濋夯鍥 鎿呴暱: C/C++ 浜掕仈缃 甯歌杞欢 PHP 鏁版嵁缁撴瀯鍙婄畻娉 鍏朵粬鍥炵瓟 浣犵殑绋嬪簭瑕佹眰鏈変袱涓,绗涓涓鎺掑簭,绗簩涓煡鎵,鎵浠ヤ綘缁撳悎杩欎袱涓畻娉曞氨鑳芥悶瀹氫簡銆傚嵆鍏堝杈撳叆鐨勬暟鎹繘琛屾帓搴,鍥犱负浣犳棤娉曚繚璇佽緭鍏ョ殑瀛︾敓鎴愮哗閮芥槸鏈夐『搴忕殑,鎵浠ュ厛瑕佹帓搴,鐒跺悗灏辨槸鏌ユ壘浜,鍙互閲囩敤浜屽垎娉鏌ユ壘,瀹炵幇绠鍗曚篃姣旇緝蹇竴浜...
  • c璇█!!!绋嬪簭璁捐:寤虹珛涓涓瀛︾敓淇℃伅閾捐〃,鍖呮嫭瀛﹀彿,濮撳悕,鎴愮哗.(瀹炵幇娣...
    绛旓細浠g爜濡備笅锛/*鐢╟璇█閾捐〃缂栧啓涓涓瀛︾敓淇℃伅绯荤粺绋嬪簭锛瑕佹眰杈撳嚭瀛︾敓鐨勫鍙凤紝濮撳悕锛屾у埆锛屽鍙凤紝濮撳悕锛屾垚缁(瀹炵幇娣诲姞锛屽垹闄わ紝鏌ヨ,鎺掑簭锛屽钩鍧)*/ include <stdio.h> include <iostream> include <string.h> include <stdlib.h> using namespace std;const int n=5;/ nodeEntry : 鑺傜偣鏁版嵁绫诲瀷 nodeADT...
  • 鐢╟++缂栧啓涓涓▼搴 瀹炵幇浠庢煇涓鏂囦欢澶逛腑鎵惧嚭鎵╁睍鍚嶇浉鍚岀殑鏂囦欢 骞跺瓨鏀...
    绛旓細浣跨敤VC涓嬬殑MFC椤圭洰閲岀殑API鈥淔indFile鈥濅互鍙娾淢oveFile"鍙互杞绘澗瀹炵幇浣犵殑闇姹傘侳indFile鐢ㄤ簬鏌ユ壘鏂囦欢锛岃孧oveFile鍒欑敤浜庣Щ鍔ㄦ枃浠讹紝浠g爜濡備笅锛//ext鏄绉诲姩鐨勬枃浠舵墿灞曞悕锛屽锛"exe"//dir鏄绉诲姩鐨勭洰鏍囩洰褰曡矾寰勶紝濡傦細"D:\\DestDir"void MoveFileByExt(const CString& ext, const CString& dir){ CSt...
  • 鐢–璇█缂栧啓涓涓▼搴,杈撳叆涓涓瓧绗︿覆,缁熻鍏朵腑鍚勪釜瀛楃鍑虹幇鐨勬鏁癬鐧 ...
    绛旓細婧愮▼搴浠g爜濡備笅锛歩nclude "pch.h"define _CRT_SECURE_NO_WARNINGS//VS鐜涓嬮渶瑕侊紝VC涓嶉渶瑕 include<stdio.h> int main(){ char c = 0;//瀹氫箟杈撳叆瀛楃鍙橀噺 int num_count = 0;//鏁板瓧涓暟 int bigalp_count = 0;//澶у啓瀛楁瘝涓暟 int littlealp_count = 0;//灏忓啓瀛楁瘝涓暟 int emp_count...
  • 扩展阅读:c++入门程序代码 ... c++最浪漫的编程代码 ... 折半查找的c程序 ... c语言查询功能编写 ... 一个完整的c源程序 ... 怎样编辑小程序 ... c++简单程序实例 ... 吓人的编程代码 ... c语言简单实现折半查找法 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网