Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Xóa khoảng trắng ở đầu chuỗi

  1. #1
    Ngày gia nhập
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    846

    Mặc định Xóa khoảng trắng ở đầu chuỗi

    C++ Code:
    1. #include "stdafx.h"
    2. #include "iostream"
    3. #include "iomanip"
    4. #include "string"
    5. #define Max 100
    6. using namespace std;
    7. void DelFirst (char s[],int &n)
    8.  
    9. {
    10.     while(s[0] == ' ' )
    11.     {
    12.         for(int i=0;i<n;i++)
    13.             s[i]=s[i+1];
    14.         n--;
    15.     }
    16. }
    17. void main ()
    18. {
    19.     int n;
    20.     char s[Max];
    21.     n=strlen(s);
    22.     cout<<"Nhap vao 1 chuoi :";
    23.     cin.getline(s,Max);
    24.     DelFirst(s,n);
    25.     cout<<s<<endl;
    26. }
    mặc dù chạy đúng nhưng hơi lâu và xuất hiện thông báo tràn mảng, mong các anh giải thích dùm e tại sao lại như vậy

  2. #2
    Ngày gia nhập
    10 2009
    Nơi ở
    Close All
    Bài viết
    993

    Trích dẫn Nguyên bản được gửi bởi aydada Xem bài viết
    C++ Code:
    1. #include "stdafx.h"
    2. #include "iostream"
    3. #include "iomanip"
    4. #include "string"
    5. #define Max 100
    6. using namespace std;
    7. void DelFirst (char s[],int &n)
    8.  
    9. {
    10.     while(s[0] == ' ' )
    11.     {
    12.         for(int i=0;i<n;i++)
    13.             s[i]=s[i+1];
    14.         n--;
    15.     }
    16. }
    17. void main ()
    18. {
    19.     int n;
    20.     char s[Max];
    21.     n=strlen(s);
    22.     cout<<"Nhap vao 1 chuoi :";
    23.     cin.getline(s,Max);
    24.     DelFirst(s,n);
    25.     cout<<s<<endl;
    26. }
    mặc dù chạy đúng nhưng hơi lâu và xuất hiện thông báo tràn mảng, mong các anh giải thích dùm e tại sao lại như vậy
    PHP Code:
    for(int i=0;i<n;i++)
    s[i]=s[i+1]; 
    -->khi i=n-1 thì s[i]=s[i+1]<=>s[n-1]=s[n] mà s[n] đã vượt ngoài mảng rồi bạn à

  3. #3
    Ngày gia nhập
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    846

    đúng là e có thiếu sót chỗ đó thật ^_^. Cảm ơn anh
    còn 1 lỗi nữa là nó báo variable n was corrupted thì sửa sao hả anh ?

  4. #4
    Ngày gia nhập
    10 2009
    Nơi ở
    Close All
    Bài viết
    993

    Đã biên dịch và test thử trên Cfree:
    PHP Code:
    #include "iostream"
    #include "iomanip.h"
    #include "string"
    #define Max 100
    using namespace std;
    void DelFirst (char s[],int &n)

    {
        while(
    s[0] == ' ' )
        {
            
    n--;
            for(
    int i=0;i<n;i++)
                
    s[i]=s[i+1];
        }
    }
    void main ()
    {
        
    int n;
        
    char s[Max];
        
    cout<<"Nhap vao 1 chuoi :";
        
    cin.getline(s,Max);n=strlen(s);
        
    DelFirst(s,n);
        
    cout<<"'"<<s<<endl;

    Đã được chỉnh sửa lần cuối bởi tauit_dnmd : 23-04-2010 lúc 03:11 PM.

  5. #5
    Ngày gia nhập
    10 2009
    Nơi ở
    Close All
    Bài viết
    993

    Trích dẫn Nguyên bản được gửi bởi aydada Xem bài viết
    đúng là e có thiếu sót chỗ đó thật ^_^. Cảm ơn anh
    còn 1 lỗi nữa là nó báo variable n was corrupted thì sửa sao hả anh ?
    Lỗi của em là khi s chưa đc khỏi tạo em đã tính n=strlen(s); .

  6. #6
    Ngày gia nhập
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    846

    Mặc định Xóa khoảng trắng ở đầu chuỗi

    em xài VS2005, còn đây là thông báo lỗi

    chỉ dùm e luôn cách sửa đi anh, đã bỏ dòng n=strlen(s) nhưng vẫn bị >.<

  7. #7
    Ngày gia nhập
    10 2009
    Nơi ở
    Close All
    Bài viết
    993

    Thì anh đã nói rồi mà:
    PHP Code:
    n=strlen(s);
        
    cout<<"Nhap vao 1 chuoi :";
        
    cin.getline(s,Max); 
    -->s chưa đc khởi tạo mà em đã tính n=strlen(s);

    Sửa như vầy:
    PHP Code:
        cout<<"Nhap vao 1 chuoi :";
        
    cin.getline(s,Max);
    n=strlen(s); 

  8. #8
    Ngày gia nhập
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    846

    sửa được rồi, cám ơn anh ^^

Các đề tài tương tự

  1. Bài tập C Xóa bỏ khoảng trắng ở đầu chuỗi và cuối chuỗi. Tại sao không xóa được khoảng trắng?
    Gửi bởi nhatacocon trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 39
    Bài viết cuối: 07-04-2013, 06:57 PM
  2. Hàm xóa khoảng ở đầu chuỗi không xóa hết khoảng trắng
    Gửi bởi taymonquang trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 5
    Bài viết cuối: 07-11-2011, 01:01 PM
  3. nhập chuỗi xóa khoảng trắng thừa
    Gửi bởi ngoctrungbmt trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 21-01-2011, 11:54 PM
  4. Xóa bỏ khoảng trắng trong chuỗi
    Gửi bởi boy_popping trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 9
    Bài viết cuối: 22-07-2010, 03:56 PM
  5. Xóa khoảng trắng trong chuỗi với lập trình C#
    Gửi bởi hieudiep trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 11
    Bài viết cuối: 18-10-2009, 03:58 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn