云计算百科
云计算领域专业知识百科平台

C语言学习-菜鸟教程C经典100例-练习32

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


#单独函数封装(指针)

赞(0)
未经允许不得转载:网硕互联帮助中心 » C语言学习-菜鸟教程C经典100例-练习32
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!