分别用字符数组和字符指针作函数参数两种方法编程实现在字符串中删除与某字符相同的字符。

分别用字符数组和字符指针作函数参数两种方法编程实现在字符串中删除与某字符相同的字符。主意是两种方法!
只能用C语言。其他语言写的不要。

1、首先,定义一个头文件cstdio。

2、接着,定义两个FILE文件结构指针类型变量,用来读入和写入字符。

3、定义一个字符数组s,并将其各元素的值初始化为0。

4、以只读的方式,打开输入文件。

5、以只写的方式,打开输出文件。

6、将输入文本中的字符串,读入字符数组s中。

7、将字符数组s中的每个字符后移3位。

8、最后,在输出文本中写入读入的字符串。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-05
1.字符数组
#include <stdio.h>
#include <string.h>
void BB(char a[20],char N)
{
int i,k;
for(i=0;a[i]!='\0';i++)
{
if(a[i]==N)
{
for(k=i;a[k]!='\0';k++)
a[k]=a[k+1];
i--;
}
}
}
void main ()
{
char a[20],N;
printf("输入一个字符串:");
gets(a);
printf("请输入要删除的字符:");
scanf("%c",&N);
BB(a,N);
puts(a);
}
2.字符指针

#include <stdio.h>
#include <string.h>
void BB(char *p,char N)
{
int i,k;
char *q;
for(;*p!='\0';p++)
{
if(*p==N)
{
for(q=p;*q!='\0';q++)
*q=*(q+1);
p--;
}
}
}
void main ()
{
char a[20],N;
char *p = a;
printf("输入一个字符串:");
gets(p);
printf("请输入要删除的字符:");
scanf("%c",&N);
BB(p,N);
puts(p);
}追问

第二个呢!

追答

#include
#include
void BB(char *p,char N)
{
int i,k;
char *q;
for(;*p!='\0';p++)
{
if(*p==N)
{
for(q=p;*q!='\0';q++)
*q=*(q+1);
p--;
}
}
}
void main ()
{
char a[20],N;
char *p = a;
printf("输入一个字符串:");
gets(p);
printf("请输入要删除的字符:");
scanf("%c",&N);
BB(p,N);
puts(p);
}

追问

这是什么方法?

我C语言渣得很!看不懂!

追答

就是删除字符串中与某个相同的字符啊,第一个用的数组,第二个用的指针啊

本回答被提问者采纳
第2个回答  2018-12-10
#include <stdio.h>
#include <string.h>
#define N 100
void Squeeze(char *s, char c);
int main()
{
char str[20], ch;
char *p=str;
printf("Input a string:");
gets(str);
printf("Input a character:");
ch = getchar();
Squeeze(str,ch);
printf("Results:%s\n", str);
return 0;
}
void Squeeze(char *s, char c)
{
int i, j;
for(i=0;*(s+i)!= '\0';i++)
{
if(*(s+i)==c)
{
j=i;
for(;*(s+j)!='\0';j++)
{
*(s+j)=*(s+j+1);
}
i--;
}
}
}