请教一个C语言小问题,谢谢了
#include <stdio.h>
#include <string.h>
#define N 200
void Score(char score[],char a);
void pointer(char score[],char *ptr,char a);
main()
{
char score[N];
char a;
char *ptr;
int choice=0;
ptr=score;
printf("请输入字符串:");
gets(score);
printf("请输入要删除的字符:");
scanf("%c",&a);
printf("1,使用字符数组\n2,使用字符指针\n");
printf("请输入选择:");
scanf("%d",choice);
if(choice==1)
{
Score(score,a);
}
if(choice==2)
{
pointer(score,ptr,a);
}
else
{
printf("输入错误,请重新运行输入\n");
}
}
void Score(char score[],char a)
{
char score1[N];
int i;
int n;
strcpy(score1,score);
n=strlen(score);
for(i=0;i<n;i++)
{
if(score1[i]==a)
{
i++;
}
printf("%c",score1[i]);
}
}
void pointer(char score[],char *ptr,char a)
{
int i;
int n;
n=strlen(score);
for(i=0;i<n;i++)
{
if(score[i]==a)
{
ptr++;
}
printf("%c",*ptr);
ptr++;
}
}
请问这个代码问题出在哪里,个人感觉是出在函数入口问题上,因为一道选择的时候就自动结束了,但是不知道怎么改,求大神指教
[解决办法]
#include <stdio.h>#include <string.h>#define N 200void Score(char score[],char a);void pointer(char score[],char *ptr,char a);int main(){ char score[N]; char a; char *ptr; int choice=0; ptr=score; printf("请输入字符串:"); gets(score); printf("请输入要删除的字符:"); scanf("%c",&a); printf("1,使用字符数组\n2,使用字符指针\n"); printf("请输入选择:"); scanf("%d",&choice); if(choice==1) { Score(score,a); } else if(choice==2) { pointer(score,ptr,a); } else { printf("输入错误,请重新运行输入\n"); } return 0;}void Score(char score[],char a){ char score1[N]; int i; int n; strcpy(score1,score); n=strlen(score); for(i=0;i<n;i++) { if(score1[i]==a) { i++; } printf("%c",score1[i]); }}void pointer(char score[],char *ptr,char a){ int i; int n; n=strlen(score); for(i=0;i<n;i++) { if(score[i]==a) { ptr++; } printf("%c",*ptr); ptr++; }}