.编写程序,实现升级版删除指定字符程序;如果字符串str中存在多个(假设n个)指定字符ch,让用户选择删除字符串str中的第几个指定字符,实现要求如下: (1)实现unsigned int NumofChar(char * str,char ch)函数作用是检查字符串Str中有多少个ch字符,形参str指向被检索的字符串,ch形参是指定查找的字符。 (2)实现char * DelChar(char * str,char ch,unsigned int n)函数,作用是删除字符串Str中的第n个ch这个字符,形参str指向被检索的字符串,ch形参是指定要删除的字符,参数n指定是第几个ch。C语言
时间: 2024-02-19 18:59:03 浏览: 114
实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 检查字符串中有多少个指定字符
unsigned int NumofChar(char *str, char ch) {
unsigned int count = 0;
while (*str != '\0') {
if (*str == ch) {
count++;
}
str++;
}
return count;
}
// 删除字符串中的指定字符
char *DelChar(char *str, char ch, unsigned int n) {
unsigned int count = 0;
char *new_str = (char *)malloc(sizeof(char) * (strlen(str) + 1));
char *p = new_str;
while (*str != '\0') {
if (*str == ch) {
count++;
if (count == n) {
str++;
continue;
}
}
*p++ = *str++;
}
*p = '\0';
return new_str;
}
int main() {
char str[100], ch;
unsigned int n;
printf("请输入一行字符串:");
fgets(str, 100, stdin);
printf("请输入要删除的字符:");
scanf("%c", &ch);
getchar(); // 读取换行符
unsigned int count = NumofChar(str, ch);
if (count == 0) {
printf("字符串中不存在该字符!\n");
return 0;
}
printf("该字符在字符串中共出现了 %u 次,请输入要删除的是第几个:", count);
scanf("%u", &n);
getchar(); // 读取换行符
if (n > count) {
printf("输入的数字超过了该字符在字符串中出现的次数!\n");
return 0;
}
char *new_str = DelChar(str, ch, n);
printf("删除后的字符串为:%s\n", new_str);
free(new_str);
return 0;
}
```
代码说明:
- `NumofChar` 函数用于统计字符串中指定字符出现的次数,返回一个整数;
- `DelChar` 函数用于删除字符串中指定的第 n 个字符,并返回一个新的字符串;
- `main` 函数用于读取用户输入,并调用上述两个函数进行处理,最终输出结果。
阅读全文