用C语言编写一函数删除字符串中指定的字符,函数的原型为: void strdelch( char *str, char c ),并制作流程
时间: 2024-03-04 17:50:54 浏览: 136
好的,下面是实现函数的代码和流程图。
```c
#include <stdio.h>
#include <string.h>
void strdelch(char *str, char c) {
int i, j;
for (i = j = 0; str[i] != '\0'; i++) {
if (str[i] != c) {
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main() {
char str[100];
char c;
printf("请输入一个字符串:");
scanf("%s", str);
getchar(); // 读取多余的回车符
printf("请输入要删除的字符:");
scanf("%c", &c);
strdelch(str, c);
printf("删除指定字符后的字符串为:%s\n", str);
return 0;
}
```
流程图如下:
![strdelch函数流程图](https://i.imgur.com/3rS6Q0u.png)
希望对您有所帮助!
相关问题
c语言编程:1. 用户先输入10个整数,再输入x,请删除所有的x再输出,如果x不在数组中,输出not found. 函数原型:int delete(int *a, int *n, int x); 其中,a是数组首元素地址,n是数组元素个数所在地址,x是要删除的整数。如果删除了x返回1,否则返回0。 2. 用户输入n,再输入n个长度不超过20的有序字符串(按照字典顺序),再输入一个字符串(长度不超过20),将其插入现有字符串数组后仍有序。 函数原型:void (char (*p)[21],int n, char *t); 其中,p是n个字符串在内存中的首地址,n是字符串个数,t是要插入的字符串。 要求使用有序插入,只不过在比较和挪数据时要使用字符串函数而已。 main函数负责输入、调用和输出。
以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
int delete(int *a, int *n, int x);
void insert(char (*p)[21], int n, char *t);
int main()
{
int a[10], n = 10, x, i, flag;
char str[10][21], t[21];
printf("请输入10个整数:\n");
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
printf("请输入要删除的整数:\n");
scanf("%d", &x);
flag = delete(a, &n, x);
if (flag == 1)
{
printf("删除后的数组为:\n");
for (i = 0; i < n; i++)
printf("%d ", a[i]);
printf("\n");
}
else if (flag == 0)
printf("not found.\n");
printf("请输入字符串个数n:\n");
scanf("%d", &n);
printf("请输入%d个有序字符串:\n", n);
for (i = 0; i < n; i++)
scanf("%s", str[i]);
printf("请输入要插入的字符串:\n");
scanf("%s", t);
insert(str, n, t);
printf("插入后的字符串数组为:\n");
for (i = 0; i < n + 1; i++)
printf("%s\n", str[i]);
return 0;
}
int delete(int *a, int *n, int x)
{
int i, j, flag = 0;
for (i = 0; i < *n; i++)
{
if (a[i] == x)
{
flag = 1;
for (j = i + 1; j < *n; j++)
a[j - 1] = a[j];
i--;
(*n)--;
}
}
return flag;
}
void insert(char (*p)[21], int n, char *t)
{
int i, j;
for (i = 0; i < n; i++)
{
if (strcmp(t, p[i]) < 0)
{
for (j = n - 1; j >= i; j--)
strcpy(p[j + 1], p[j]);
strcpy(p[i], t);
break;
}
}
if (i == n)
strcpy(p[n], t);
}
```
代码中使用 `delete` 函数实现了删除数组中所有的 `x`,并返回删除状态,如果删除成功则输出删除后的数组,否则输出 `not found.`。
使用 `insert` 函数实现了有序插入字符串,首先在数组中找到插入位置,然后将后面的字符串依次往后挪一位,最后将新字符串插入到指定位置。
c语言编写一个函数,接收一个字符串,统计其中数字字符个数及字母字符个数。函数原型为:void fun(const char *str, int* char_N, int* letter_N);
好的,下面是代码:
```c
void fun(const char *str, int* char_N, int* letter_N) {
int num_count = 0;
int letter_count = 0;
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (isdigit(str[i])) {
num_count++;
} else if (isalpha(str[i])) {
letter_count++;
}
}
*char_N = num_count;
*letter_N = letter_count;
}
```
这个函数使用了循环遍历字符串中的每个字符,通过isdigit和isalpha函数来判断字符是数字还是字母。最后将数字字符个数和字母字符个数分别赋值给char_N和letter_N指针所指向的变量。
阅读全文