读书人

请问一个C语言小疑点多谢了

发布时间: 2012-06-06 16:44:11 作者: rapoo

请教一个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++;
}
}

请问这个代码问题出在哪里,个人感觉是出在函数入口问题上,因为一道选择的时候就自动结束了,但是不知道怎么改,求大神指教










[解决办法]

C/C++ code
#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++;    }} 

读书人网 >C语言

热点推荐