30/09/2018, 17:39

Làm thế nào để xóa 1 từ trong 1 chuỗi?

em cho chạy chương trình thì nó báo sai ở chỗ hàm erase vậy thì phải thay thế bằng hàm nào ạ

#include<iostream>
#include<conio.h>
#include<fstream>

using namespace std;
int main()
{
    int i;
    FILE *p1;
    FILE *p2;
    char line1[4][60], line2[4][20];


    if((p1=fopen("file1.txt","r"))==NULL)
    {
        printf("file cannot be printed");
        getch();
    }

    while(!feof(p1))
    {
        for(int i=0; i<3; i++)
        {
            fgets (line1[i], 60, p1);
            printf("%s", line1[i]);
        }

    }

    fclose(p1);

    if((p2=fopen("file2.txt","w+"))==NULL)
    {
        printf("file cannot be printed");
        getch();
    }
    for(int i= 0; i<3; i++)
    {
        fwrite(line1[i],sizeof(line1[i]),1,p2);
    }

    while(fread(line2,sizeof(line2),1,p2)==1)
{
    for(int i=0; i<4; i++)
        {
            for(int j =0; j<20; j++)
            {
                if(line2[i][j]==' '&&line2[i][j+1]=='a'&&line2[i][j+2]==' ')
                    line2& erase(j,j+2);
                else if(line2[i][j]==' '&&line2[i][j+1]=='a'&&line2[i][j+2]=='n'&&line2[i][j+3]==' ')
                    line2& erase(j,j+3);
                else(line2[i][j]==' '&&line2[i][j+1]=='t'&&line2[i][j+2]=='h'&&line2[i][j+3]=='e'&&line2[i][j+4]==' ');
                line2& erase(j,j+4);
            }
        }
        printf("the new string is:
");
        while(!feof(p1))
        {
            for(int i=0; i<3; i++)
            {
                fgets (line2[i], 60, p1);
                printf("%s", line2[i]);
            }

        }
}
Trần Toàn viết 19:44 ngày 30/09/2018

bạn vào đây tim hiểu http://www.cplusplus.com/reference/string/string/erase/

Phong Triệu viết 19:47 ngày 30/09/2018

nhưng đó là c++ bạn ơi

Nguyễn Duy Khánh viết 19:45 ngày 30/09/2018

Bạn post cả lỗi lên đây.

Phong Triệu viết 19:44 ngày 30/09/2018

Minh Hoàng viết 19:48 ngày 30/09/2018

Không được khai báo. Bạn xem lại thử bạn đã định nghĩa hàm erase ở đâu? line2& erase(j,j+2); là sao nhỉ

X viết 19:43 ngày 30/09/2018

erase trong thư viện string, code nhìn lai lai sao ấy nhỉ

Phong Triệu viết 19:52 ngày 30/09/2018

thì thế em mới nhờ các bác sửa hộ, chứ cái hàm erase em biết là ở trong c++ nhưng em chưa học đến vì em đang học c thôi, bây giờ em cần một hàm hoặc 1 đoạn code khác để xóa đi mấy từ a, an, the trong đoạn văn của file1 á.

Tự dưng cảm thấy mình thiếu kiến thức quá :3

Minh Hoàng viết 19:52 ngày 30/09/2018

dùng strstr để kiếm chuỗi. Dùng memmove để di chuyển chuỗi. Ngắn gọn

phong viết 19:52 ngày 30/09/2018

Chưa #include làm sao erase đc

Bài liên quan
0