rjps.net
当前位置:首页 >> C语言“在字符串中删除指定的字符”?怎么编写程序 >>

C语言“在字符串中删除指定的字符”?怎么编写程序

这个容易,就是把指定位置的字符去掉,也就是说后面的字符覆盖 比如删除指定的字符在字符串中第一个出现的位置 void strdel( char* str, char ch ) { char *p = str; while( *p ) { if( *p==ch ) break; } if( *p ) { while( *p ) { *p==*(p+1); p++; } } }

思路:用一个新的字符数组来存最后输出的数组.循环比较原数组的所有字符,如果不是要删除的字符就存入该字符数组 int main(int argc, char* argv[]) { char src[]="12a34a567aa"; char des[50]; char name='a'; int flag=0;//标志变量,用来指向

希望对你有所帮助:#include <stdio.h>#include <string.h>#define N 10 void main() { char ch[N]={'0'}; char move;//指定要删除的字符 printf("please input a string:"); gets(ch); printf("your string is:"); puts(ch); printf("please input the char which

void move_t(char str[],int i){ int k; for (k=i;str[k]!=null;k++){ str[k]=str[k++]; }}void delete_string(char str[],char ch){ int i=0; int flag=1; while(flag){ if (!str[i]){ flag=0; break; } move_f(str,i); //用来找到的字符之后将字符之后的字符往前移一个 }}程序手机打的

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就是新的删除之后的字符串了基本类型中不支持删除操作,所以实际上就是一个新的字符串.

如果知道删除内容的话可以用字符串比对函数strstr(),找到以后进行删除

这个容易,就是把指定位置的字符去掉,也就是说后面的字符覆盖 比如删除指定的字符在字符串中第一个出现的位置 void strdel( char* str, char ch ) { char *p = str; while( *p ) { if( *p==ch ) break; } if( *p ) { while( *p ) { *p==*(p+1); p++; } } } 希望能解决您的问题.

没有用函数,#include<stdio.h>void main(){ char s[80],ch; int i,j; printf("输入字符串: "); gets(s); printf("输入需要删除的指定字符ch: "); ch=getchar(); for(i=j=0;s[i]!='\0';i++) if(s[i]!=ch)s[j++]=s[i]; s[j]='\0'; printf("删除字符 %c 之后字符串为 : %s\n",ch,s);}

效率有点低,看这个 void delchar(char *str, char del) { char *d = str; while (*str != '\0') { if (*str != del) {*d++ = *str; }++str; }*d = '\0'; }

gets(s1);n=strlen(s1); // 这句话写到 gets(s1) 获取字符串之后

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.rjps.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com