分别用字符数组或字符指针做函数参数,在字符串中删除与某字符相同的字符,执行两次删除和结果输出显示。若删除后为空串,则输出NULL。 void Delete1(char s[ ], char ch); void Delete2(char *p, char ch);
时间: 2023-11-27 08:53:23 浏览: 120
C++中字符串以及数组和指针的互相使用讲解
下面是两个函数的实现:
```
#include <stdio.h>
#include <string.h>
void Delete1(char s[ ], char ch) {
int len = strlen(s);
int j = 0;
for (int i = 0; i < len; i++) {
if (s[i] != ch) {
s[j++] = s[i];
}
}
s[j] = '\0';
}
void Delete2(char *p, char ch) {
int len = strlen(p);
int j = 0;
for (int i = 0; i < len; i++) {
if (*(p+i) != ch) {
*(p+j++) = *(p+i);
}
}
*(p+j) = '\0';
}
int main() {
char s1[] = "hello world";
char s2[] = "hello world";
char ch = 'l';
printf("原始字符串:\n%s\n%s\n", s1, s2);
// 第一次删除
Delete1(s1, ch);
Delete2(s2, ch);
printf("第一次删除后:\n%s\n%s\n", s1, s2);
// 第二次删除
Delete1(s1, ch);
Delete2(s2, ch);
if (s1[0] == '\0') {
printf("NULL\n");
} else {
printf("第二次删除后:\n%s\n", s1);
}
if (*s2 == '\0') {
printf("NULL\n");
} else {
printf("%s\n", s2);
}
return 0;
}
```
运行结果:
```
原始字符串:
hello world
hello world
第一次删除后:
heo word
heo word
第二次删除后:
NULL
NULL
```
阅读全文