Cho em xin code hàm xóa kí tự trong chuỗi

Các bác cho em xin hàm xóa kí tự trong xâu ạ. (c++)
Vd : xau =abcdef
xóa kí tự 'd' trong xâu 'abcdef'

Chung là có bác nào giúp em viết code giống trong pascal ấy, dùng lệnh delete(s,i,1),....
xoakitu(xau,3,1)
trong đó xau là string
3 là vị trí mún xóa
1 là xóa bao nhiu kí tự từ vị trí thứ 3
 

Ngọc Huyền1

Công Chúa Nhỏ
đây nhé .
hàm xóa đoạn kí tự .
s2.erase(s2.begin() , s2.begin() + 8) ;
cout<<"\n S2 : " << s2 ;
 

taplamhacker

♥ Thanh Trâm ♥
bạn test thử :V
[AH]
Mã:
void hacker(char a[]){
     char tmp;
    printf("nhap ky tu muon xoa");
    tmp = getchar();
    int n = strlen(a); 
     for(int i=0;i<n;i++)
      {
         if(a[i]==tmp)
         {
            for(int j=i; j<n;j++)
              a[j]=a[j+1];
            a[n--]='\0';      
             i--; 
          }
      }
}
[/AH]
 

taplamhacker

♥ Thanh Trâm ♥
:feel_good: để mình giải thích 1 tí code ở trên
nhập và tìm k có gì để nói, khi tìm dc 1 ký tự muốn xóa thì mảng giảm 1, ký tự cuối cùng thành \0
cái i--, để bắt đầu tìm lại từ vị trí đó nếu có 2 hoặc 3 ký tự nữa chưa xóa, nếu muốn xóa 1 cái thì bỏ break zô là xong
 

phamthanhnhan

(。◕‿‿◕。) づ
cảm ơn các bác nhiều lắm nhưng thực ra là em muốn tạo code delete(s,i,1) giống trong pascal ấy ạ, chứ ko phải xóa kí tự mình đưa vào
VD: s="vfo.vn" dùng hàm delete(s,4,1) thì xóa "u", kết quả s=="vform.vn"
s="vfo.vn" dùng hàm delete(s,4,3) thì xóa "um.", kết quả s=="vforvn"
 
Nếu dùng #include<string> thì có hàm erase() tương tự như hàm delete


VD :

std::string t;
std::string s;

Scanf("%s%s", &t, &s);

std::string::size_type i = t.find(s);

if (i != std::string::npos)
t.erase(i, s.length());
printf("Result : %s", t);
 

Thống kê

Chủ đề
102,787
Bài viết
470,610
Thành viên
340,593
Thành viên mới nhất
winspire
Top