c语言删除某个字符串中的某一个字符

之前在处理删除某个字符串中的某个字符的时候,经常会先在外层套一个for循环,然后再进行查找目标字符串中的目标字符,当查找到的时候,将查找到的目标字符后面的所有字符依次向前面移动,然后继续向后查找目标字符,直到查找到最后的一个字符。

后来在看c语言的书籍的时候,发现了一种效率比较高的方法,该方法只需要进行一次对目标字符串的遍历即可完成删除目标字符的功能,具体的代码如下所示:

void delete_char(char str[],char target){
	int i,j;
	for(i=j=0;str[i]!='\0';i++){
		if(str[i]!=target){
			str[j++]=str[i];
		}
	}
	str[j]='\0';
}

 

C语言删除字符串的某个字符可以通过如下几个步骤实现: 1. 获取需要删除字符字符串的位置,可以使用C语言的strchr()函数实现,该函数返回指向第一次出现指定字符的指针。 2. 判断获取到的指针是否为NULL,如果为NULL表示查找不到该字符,则无需删除,直接返回即可。 3. 如果获取到的指针不为NULL,则需要将指定字符后面的所有字符依次向前移动一个位置,可以使用C语言的strcpy()函数实现。 4. 最后将字符串末尾多余的字符去掉,可以使用C语言的strlen()函数获取字符串长度,再将末尾的多余字符替换成'\0'即可。 示例代码如下所示: ``` #include <stdio.h> #include <string.h> void removeChar(char *str, char ch) { char *src, *dst; for (src = dst = str; *src != '\0'; src++) { *dst = *src; if (*dst != ch) dst++; } *dst = '\0'; } int main() { char str[100], ch; printf("请输入字符串:"); fgets(str, 100, stdin); printf("请输入需要删除字符:"); scanf("%c", &ch); getchar(); removeChar(str, ch); printf("删除后的字符串为:%s", str); return 0; } ``` 以上代码,removeChar()函数即为删除指定字符的函数实现,str为需要删除字符字符串,ch为需要删除字符。通过for循环遍历字符串的每个字符,将不需要删除字符向前移动一位,最后将末尾多余的字符替换成'\0'。在main()函数,先获取用户输入的字符串和需要删除字符,再调用removeChar()函数删除指定字符。最后输出删除后的结果字符串
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值