删除字符串中的指定字符(c语言,非调用)

本文介绍了一个简单的C语言程序,该程序能够从用户输入的字符串中删除特定的字符。通过使用基本的C语言结构,如数组和循环,程序有效地实现了这一功能。
#include<stdio.h>
#include<string.h>


int main()
{
int i;

//需要删除的字符变量的声明
char delete_ch;

 //若需要输入的字符串过长,可修改数组a中括号内的值
char a[100];

//字符串的实际字符数变量的声明
int num;

printf("请输入字符串:");
gets_s(a);

//确定输入的字符数
num = strlen(a);

printf("输入想删除的字符:");
scanf_s("%c", &delete_ch);

//循环输出字符
for (i = 0; i < num; i++)
{

    //判断,跳过需要删除的字符的输出
	if (a[i] == delete_ch)
	{
		continue;
	}

    //输出字符
	printf("%c", a[i]);
}

//换行
printf("\n");

//返回
return  0;
}
### C语言实现删除字符串指定字符的功能 以下是基于已有引用内容以及专业知识所提供的解决方案: #### 方法描述 为了实现在C语言中从字符串中移除特定字符的功能,可以采用双指针技术。具体来说,定义两个索引变量 `i` 和 `j`,其中 `i` 遍历整个原始字符串,而 `j` 负责记录目标字符串的有效部分长度。当遇到不需要被移除的字符时,将其复制到当有效置。 #### 示例代码 以下是一段完整的示例代码,展示了如何实现该功能[^1]: ```c #include <stdio.h> #include <string.h> // 函数用于移除字符串中的指定字符 void removeChar(char *str, char ch) { int len = strlen(str); int i, j; for (i = j = 0; i < len; i++) { if (str[i] != ch) { // 如果不是要移除的字符,则保留 str[j++] = str[i]; } } str[j] = '\0'; // 添加字符串结束符 } int main() { char str[100]; char ch; printf("请输入一个字符串: "); fgets(str, sizeof(str), stdin); // 移除fgets读取时可能存在的换行符 size_t len = strlen(str); if (len > 0 && str[len - 1] == '\n') { str[len - 1] = '\0'; } printf("请输入要去除的字符: "); scanf("%c", &ch); // 执行移除操作 removeChar(str, ch); printf("去除指定字符后的字符串: %s\n", str); return 0; } ``` 上述代码实现了如下逻辑: - 使用 `removeChar` 函数来完成核心功能。 - 主函数负责接收用户输入并调用此函数。 - 特别注意的是,在使用 `fgets` 输入字符串时可能会附加多余的换行符 `\n`,因此需要额外清理[^2]。 #### 关键点解析 1. **循环遍历**: 外层循环通过 `for(i=0;i<len;i++)` 来逐一访问原字符串中的每一个字符2. **条件判断**: 判断当字符是否等于待删除的目标字符 (`if (str[i]!=ch)`)[^1]。 3. **覆盖存储**: 若不匹配则将该字符赋给新数组的置,并更新计数器 `j++`. 4. **终止标记**: 循环结束后需手动设置字符串结尾标志为零(`'\0'`)表示字符串结束. #### 注意事项 如果希望扩展本程序支持更多复杂场景(例如大小写敏感度调整),可进一步修改比较规则或者引入其他辅助工具函数。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值