c语言删除字符串的方法是什么呢?
一、问题描述:从键盘输入一个字符串给str和一个字符给c,删除str中的所有字符c并输出删除后的字符串str。
1、输入:第一行是一个字符串; 第二行是一个字符。
2、输出:删除指定字符后的字符串。
二、设计思路:
1、 同插入问题,定义两个字符数组a,b。以及标志删除位置的int型pos。
2、用gets函数输入数组a的值,并利用for循环将数组a copy到 数组b。
3、利用for循环,令pos位的数组b元素赋值到a。
三、实现代码如下:
四、编译并执行,运行结果如下:
扩展资料:
函数性能增强:
只需要进行一次对目标字符串的遍历即可完成删除目标字符的功能,具体的代码如下所示:
具体执行结果同上。
使用free()函数释放内存。
char* str = "Hello World";
free(str);将字符串变量的第一个字符设置为'\0'。
char str[] = "Hello World";
str[0] = '\0';将字符串变量赋值为空字符串。
char str[] = "Hello World";
str[0] = '\0';
绛旓細1銆佽緭鍏ワ細绗竴琛屾槸涓涓瀛楃涓锛 绗簩琛屾槸涓涓瓧绗︺2銆佽緭鍑猴細鍒犻櫎鎸囧畾瀛楃鍚庣殑瀛楃涓层備簩銆佽璁℃濊矾锛1銆 鍚屾彃鍏ラ棶棰橈紝瀹氫箟涓や釜瀛楃鏁扮粍a锛宐銆備互鍙婃爣蹇楀垹闄や綅缃殑int鍨媝os銆2銆佺敤gets鍑芥暟杈撳叆鏁扮粍a鐨勫硷紝骞跺埄鐢╢or寰幆灏嗘暟缁刟 copy鍒 鏁扮粍b銆3銆佸埄鐢╢or寰幆锛屼护pos浣嶇殑鏁扮粍b鍏冪礌璧嬪煎埌a銆備笁銆...
绛旓細1. 鍩烘湰鏂规硶鏄畾涔変竴涓嚱鏁 `deleteChar`锛岃鍑芥暟闇瑕佷袱涓弬鏁帮細瀛楃涓 `str` 鍜岃鍒犻櫎鐨勫瓧绗 `c`銆傞氳繃閬嶅巻瀛楃涓蹭腑鐨勬瘡涓瓧绗︼紝褰撻亣鍒颁笌 `c` 鐩稿尮閰嶇殑瀛楃鏃讹紝鎵ц鍒犻櫎鎿嶄綔銆備互涓嬫槸璇ユ柟娉曠殑瀹炵幇浠g爜锛歚``c void deleteChar(char *str, char c) { char *ptr = str;while (*ptr != '\...
绛旓細鍒╃敤C璇█鍒犻櫎瀛楃涓蹭腑鎵鏈夋寚瀹氱殑瀛楃鏂规硶濡備笅锛1.鍩烘湰鏂规硶鏄紝缂栧啓鍑芥暟fun锛歞eletechar()銆傝繖涓嚱鏁伴渶瑕佹帴鍙椾袱涓弬鏁扮殑浼犲叆锛屼竴涓负璇ュ瓧绗︿覆str锛屽彟涓涓负鎯冲垹闄ょ殑瀛楃c銆傞氳繃瀵规暣涓瓧绗︿覆鐨勯愪釜閬嶅巻锛屽嚒鏄娴嬪埌瀛楃涓篶锛屽垯鍒犻櫎姝ゅ瓧绗︺傚叿浣撳疄鐜颁唬鐮佸涓嬶細2.鍦ㄤ富鍑芥暟锛屽彧闇瑕佹帴鍙楃敤鎴疯緭鍏ョ殑瀛楃涓诧紝鐒...
绛旓細鏂规硶1锛氫娇鐢ㄨ繍琛屽簱鍑芥暟memset():memset(str, 0, sizeof(str));鏂规硶2锛氫娇鐢╓indows API鍑芥暟ZeroMemory():ZeroMemory(str, sizeof(str));浣嗕笉鑳界敤浜庢寚閽堛傛寚閽堢殑鎯呭喌涓嬶紝蹇呴』杩欐牱:struct mystr {...} *p;...memset(p, 0, sizeof(struct mystr));鎴栵細ZeroMemory(p, sizeof(struct mystr))...
绛旓細c璇█涓涔﹀啓鍒犻櫎瀛楃涓涓煇涓瀛楃鐨绋嬪簭鐨勫叿浣撴搷浣滄楠ゅ涓嬶細1銆佺紪鍐欏ご鍑芥暟锛屽寘鎷#include <stdio.h>.鈥濅笌鈥#include <string.h>.鈥溿2銆佸畾涔変袱涓浉鍚屽閲忕殑瀛楃涓插偍瀛樼殑鍙橀噺 char a銆100銆; char b銆100銆戙備互鍙婃暣鏁板彉閲 int c锛沬nt i=0锛宩=0锛涘叾涓璦[100]鏄瓨瀛楃涓茬殑锛宐銆100銆戞槸...
绛旓細//璇峰湪涓ゆ潯鏄熺嚎闂村~鍏ヤ唬鐮, 鍒犻櫎鎸囬拡p鎸囧悜鐨瀛楃涓涓墍鏈夌殑c瀛楃 //瑕佹眰锛氬埄鐢ㄦ寚閽鏂规硶鏉ュ鐞嗐/***/ i=0;k=0;while(*(p+i)!='\0'){ if(*(p+i)!=c){ (q+k)=*(p+i);k++;} i++;} (q+k)='\0';strcpy(p,q);/***/ } 杩愯缁撴灉 ...
绛旓細2銆佸叾娆″氨鏄瀹氫箟涓や釜鐩稿悓瀹归噺鐨勫瓧绗︿覆鍌ㄥ瓨鐨勫彉閲 chara[100]; charb[100];銆備互鍙婃暣鏁板彉閲 intc; inti=0,j=0;鍏朵腑a[100]鏄瓨瀛楃涓茬殑锛宐銆100銆戞槸瀛樹綘鍒犻櫎瀵瑰簲瀛楃鐨勫瓧绗︿覆鐨锛屾暣鏁C鏄浣犳兂鍒犻櫎绗嚑浣嶃俲锛宨鏄悗闈or寰潖涓浣跨敤鍒扮殑鍙橀噺銆3銆 printf("璇疯緭鍏ヤ綘鐨勫瓧绗︿覆"); scanf("%s...
绛旓細include<stdio.h>void del(char * s,int n,int len){char *p; s+=n; for(p=s+len;*s++=*p++;);}int main(){char s[]="apple"; if(s==NULL||n<0) {printf("error"); return 0; } del(s,2,2); puts(s); return 0;} ...
绛旓細C璇█鍒犻櫎瀛楃涓涓寚瀹氬瓧绗﹀彲浠ュ弬鑰冧笅闈㈢殑浠g爜锛歩nclude<stdio.h> int main { char * fun(char * s);char arg[] = "hello.cgi?name1=value1&name2=value2";printf("This value :%s\n",fun(arg));getchar();return 0;} char * fun(char * s){ char *s1 = s; //s1鎸囧悜瀛楃涓查...
绛旓細c璇█瀛楃涓插垹闄 缂栧啓瀹炵幇鍒犻櫎瀛楃涓涓寚瀹氬瓧绗︿覆骞跺皢鍚庨潰鐨勫墠绉汇倂oiddelete(chars[],chart[]){inti,j,k;intflag=0;for(i=j=0;s[i]!='\0';i++){for(k=0;t[k]!='\0';k++){if(s[i+k]==t[k])flag=1;else... 缂栧啓瀹炵幇鍒犻櫎瀛楃涓蹭腑鎸囧畾瀛楃涓插苟灏嗗悗闈㈢殑鍓嶇Щ銆倂oid delete(char s[],...