C语言学习-菜鸟教程C经典100例-练习32
- 题目
- 思路
- 代码
- 输出结果
- #单独函数封装(数组索引)
-
- 代码
- 输出结果
- #单独函数封装(指针)
题目
删除一个字符串中的指定字母,如:字符串 “aca”,删除其中的 a 字母。
思路
- 依次遍历字符串中的每个字符;
- 检查字符是否等于要删除的字符;
- 如果是,则跳过该字符,否则将该字符添加到新的字符串中;
- 最后返回新的字符串。
代码
#include <stdio.h>
#include <string.h>
int main(){
char string[100]; // 输入的原始字符串
char result[100]; // 输出的新字符串
char target; // 要删除的字符
int i, j = 0;
printf("请输入一个字符串:");
fgets(string, sizeof(string), stdin); // 读取字符串
printf("请输入要删除的字符:");
scanf(" %c", &target); // 读取要删除的字符
for(i=0; string[i]!='\\0'; i++){
if(string[i] != target){
result[j] = string[i]; // 将不等于目标字符的字符添加到结果字符串中
j++;
}
}
result[j] = '\\0'; // 字符串结束符
printf("删除 '%c' 后的字符串是:%s\\n", target, result);
return 0;
}
输出结果
请输入一个字符串:aca
请输入要删除的字符:a
删除 'a' 后的字符串是:c
请输入一个字符串:asdfgdsadfasdf
请输入要删除的字符:a
删除 'a' 后的字符串是:sdfgdsdfsdf
#单独函数封装(数组索引)
代码
#include <stdio.h>
#include <string.h>
// 删除字符串中的指定字符,返回新字符串
void delete_char(char *src, char *dest, char target){
int i, j = 0;
for(i=0; src[i]!='\\0'; i++){
if(src[i] != target){
dest[j] = src[i];
j++;
}
}
dest[j] = '\\0'; // 添加字符串结束符
}
int main(){
char string[100];
char result[100];
char target;
printf("请输入一个字符串:");
fgets(string, sizeof(string), stdin); // 读取字符串
string[strcspn(string, "\\n")] = '\\0'; // 去掉换行符
printf("请输入要删除的字符:");
scanf(" %c", &target); // 读取要删除的字符
// 调用函数
delete_char(string, result, target);
printf("删除'%c'后的字符串:%s\\n", target, result);
return 0;
}
输出结果
请输入一个字符串:aca
请输入要删除的字符:a
删除'a'后的字符串:c
网硕互联帮助中心



评论前必须登录!
注册