m0_58706814 2021-06-04 08:19 采纳率: 100%
浏览 147
已采纳

将键盘输入的字符串(该字符串只包含字母和*)删除字符串中的*号

#include <stdio.h>

#include <stdlib.h>

void main()

{

FILE *fp;

    char c;

    char str[100]={'\0'};

    char str1[100]={'\0'};

    int i=0,j=0,k=0;

int p=0,q=0;

char a[100],b[100];

scanf("%s",str);

    fp=fopen("D:\\test.txt","w");

fputs(str,fp);

fclose(fp);

    fp=fopen("D:\\test.txt","r");

    c=fgetc(fp);

    str[i++]=c;

    while(c!=EOF)

{

c=fgetc(fp);

str[i++]=c;

    }

    fclose(fp);

    for(i=0;a[i]!='\0';i++)

{

if(a[i]!='*')

break;

}

p=i;

for(i=strlen(str1)-1;i>=0;i--)

{

if(a[i]!='*')

break;

}

q=i;

if(j<=p||j>=q)

{

str1[k++]=str[j];

}

else if(str[j]!='*')

{

str1[k++]=str[j];

}

puts(str1);

if(!(fp=fopen("D:\\test.txt","w+")))

{

printf("test.txt打开失败\n");

return 0;

}

fwrite(str1,1,k,fp);

fclose(fp);

}输出错误,求正确输出

 

  • 写回答

4条回答 默认 最新

  • 关注
    #include <stdio.h>
    #include <string.h>
    void main()
    {
    	FILE *fp;
        char c;
        char str[100]={'\0'};
        char str1[100]={'\0'};
        int i=0,j=0,k=0;
    	int p=0,q=0;
    	char a[100],b[100];
    	gets(str);
        fp=fopen("D:\\test.txt","w");
    	fputs(str,fp);
    	puts(str);
    	fclose(fp);
        fp=fopen("D:\\test.txt","r");
        c=fgetc(fp);
        str[i++]=c;
        while(c!=EOF)
    	{
    		c=fgetc(fp);
    		str[i++]=c;
        }
        fclose(fp);
        for(i=0;str[i]!='\0';i++)
    	{
    		if(str[i]!='*'){
    			
    			break;
    		}			
    	}
    	p=i-1;
    	for(i=strlen(str)-2;i>=0;i--)
    	{
    		if(str[i]!='*')
    			break;
    	}
    	q=i+1;
    	k=0;
    	for(i=0;str[i]!='\0';i++){
    		if(i<=p||i>=q)
    		{
    			str1[k++]=str[i];
    			printf("%s\t",str1);
    		}
    		else if(str[i]!='*')
    		{
    			str1[k++]=str[i];
    		}
    	}
    	puts(str1);
    	if(!(fp=fopen("D:\\test.txt","w+")))
    	{
    		printf("test.txt打开失败\n");
    		return 0;
    	}
    	fwrite(str1,1,k,fp);
    	fclose(fp);
    
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题
  • ¥15 用ADS设计一款的射频功率放大器
  • ¥15 怎么求交点连线的理论解?