Announcement

Collapse
No announcement yet.

Cho hỏi lỗi ... has stopped working.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Cho hỏi lỗi ... has stopped working.

    tình hình là e bị lỗi này song không biết đoạn code bị sai chỗ nào, post lên đây, nhờ mọi người tìm giúp. e cảm ơn nhiều.
    PHP Code:
    #include<iomanip>
    #include<string>
    #include<ctype.h>
    #include<iostream>
    #include<ctype.h>
    using namespace std;
    void main()
    {
        
    cout<<"nhap vao chuoi s\n";
        
    char *s=new char;
        
    gets(s);
        
    cout<<"-------------------------------------------------------------\n";
        
    cout<<"\n";
        
    int o=strlen(s);
        
    cout<<"so ki tu trong chuoi:"<<o<<"\n";
        
    int i,t=0,h=0,c=0,d=0,p=0;
        for (
    i=0;i<o;i++)
            if (
    isupper(s[i]))
                
    h++;
            else
                if (
    islower(s[i]))
                    
    t++;
                else
                    if (
    isdigit(s[i]))
                        
    c++;
                    else
                        if (
    isspace(s[i]))
                            
    p++;
                        else
                            
    d++;
        
    cout<<"so ki tu thuong la:"<<t<<"\nso ki tu hoa la:"<<h<<"\nso ki tu chu so la:"<<c<<"\nso khoang trang la:"<<p<<"\nso ki tu dac biet la:"<<d<<"\n";
        for (
    i=0;i<o/2;i++)
            if (
    s[i]!=s[o-i-1])
            {
                
    d=-1;
                break;
            }
        if (
    d<0)
            
    cout<<"chuoi khong doi xung\n";
        else
            
    cout<<"chuoi doi xung\n";
        for (
    i=(o-1);i>=0;i--)
            
    cout<<s[i];
        
    cout<<"\n";
        for (
    i=0;i<o;i++)
        {
            if (
    isupper(s[i]))
                
    cout<<(char)tolower(s[i]);
            else
                if (
    islower(s[i]))
                    
    cout<<(char)toupper(s[i]);
        }
        
    cout<<"\n";
        for (
    i=0;i<o;i++)
            if (!
    isspace(s[i]))
            {
                
    strcpy(&s[0],&s[i]);
                break;
            }
        
    o=o-i;
        for (
    i=o-1;i>=0;i--)
            if (!
    isspace(s[i]))
            {
                
    s[i+1]='\0';
                break;
            }
        
    o=o-i;
        
    cout<<s;
        
    cout<<"\n";
        
    cin.get();

    quên mất, chương trình chỉ bị lỗi khi e chạy bằng Ctrl + F5, còn khi F10 debug lần lượt vẫn chạy hoàn toàn pình xường.
    e đang dùng Visual Studio 2012, đường dẫn hoàn toàn không dấu... =.=!
    ------------------------------------------------------------------------------------------------------------------
    đã tìm ra cách giải quyết chuyện chữ hoa - thường.
    Last edited by 12520486; 24-12-2012, 04:34.

  • #2
    Theo mình thì sửa lại các dòng sau:
    -char *s=new char; đổi thành char *s=new char[100];
    -cout<<tolower(s[i]); đổi thành cout<<(s[i]=tolower(s[i]));
    -cout<<toupper(s[i]); đổi thành cout<<(s[i]=toupper(s[i]));
    PHP Code:
    #include<iomanip>
    #include<string>
    #include<ctype.h>
    #include<iostream>
    #include<ctype.h>
    using namespace std;
    void main()
    {
        
    cout<<"nhap vao chuoi s\n";
        
    char *s=new char[100];
        
    gets(s);
        
    cout<<"-------------------------------------------------------------\n";
        
    cout<<"\n";
        
    int o=strlen(s);
        
    cout<<"so ki tu trong chuoi:"<<o<<"\n";
        
    int i,t=0,h=0,c=0,d=0,p=0;
        for (
    i=0;i<o;i++)
            if (
    isupper(s[i]))
                
    h++;
            else
                if (
    islower(s[i]))
                    
    t++;
                else
                    if (
    isdigit(s[i]))
                        
    c++;
                    else
                        if (
    isspace(s[i]))
                            
    p++;
                        else
                            
    d++;
        
    cout<<"so ki tu thuong la:"<<t<<"\nso ki tu hoa la:"<<h<<"\nso ki tu chu so la:"<<c<<"\nso khoang trang la:"<<p<<"\nso ki tu dac biet la:"<<d<<"\n";
        for (
    i=0;i<o/2;i++)
            if (
    s[i]!=s[o-i-1])
            {
                
    d=-1;
                break;
            }
        if (
    d<0)
            
    cout<<"chuoi khong doi xung\n";
        else
            
    cout<<"chuoi doi xung\n";
        for (
    i=(o-1);i>=0;i--)
            
    cout<<s[i];
        
    cout<<"\n";
        for (
    i=0;i<o;i++)
        {
            if (
    isupper(s[i]))
                
    cout<<(s[i]=tolower(s[i]));
            else
                if (
    islower(s[i]))
                    
    cout<<(s[i]=toupper(s[i]));
        }
        
    cout<<"\n";
        for (
    i=0;i<o;i++)
            if (!
    isspace(s[i]))
            {
                
    strcpy(&s[0],&s[i]);
                break;
            }
        
    o=o-i;
        for (
    i=o-1;i>=0;i--)
            if (!
    isspace(s[i]))
            {
                
    s[i+1]='\0';
                break;
            }
        
    o=o-i;
        
    cout<<s;
        
    cout<<"\n";
        
    cin.get();

    App Win 8 để cập nhật thông báo daa, fanpage các CLB, UIT Confessions,...: http://forum.uit.edu.vn/threads/3871...-Windows-8-8-1

    Comment


    • #3
      has stopped working là lỗi trong runtime, bạn debug từng bước xem lỗi ở đâu

      Comment


      • #4
        Originally posted by 09520720 View Post
        has stopped working là lỗi trong runtime, bạn debug từng bước xem lỗi ở đâu
        em đã thử debug rồi... khi debug chương trình chạy hoàn toàn bình thường, nhưng khi chạy hẳn lại bị lỗi này.
        @Võ Hắc Việt: cảm ơn bạn nhé, nhưng mình có 1 vài ý ở những câu lệnh này:
        1/đoạn code in chữ hoa là mình muốn in chữ hoa ra thôi chứ không phải là đổi chữ hoa cả chuỗi, theo kiểu của bạn thì mình đã làm được rồi, nhưng chuỗi sau đó lại bị "hiệu ứng" gì thì chắc bạn cũng rõ, mình muốn giữ nguyên chuỗi lúc đầu 1 cách nhanh gọn nhất ấy.
        2/đoạn chuỗi "động" là mình muốn tiết kiệm bộ nhớ nên mới xài chuỗi động, nếu khai báo như trên thì cỡ nào cũng mất 100 ô nhớ rồi... =.=!
        P/S: mình chỉ đang trong giai đoạn tối ưu hóa đoạn code này thôi.
        cảm ơn nhiều.

        Comment


        • #5
          ủa mình chạy thử thì thấy bình thường mà bạn

          Comment


          • #6
            nó chỉ báo lỗi ở 1 số chuỗi thôi anh ạ, ví dụ chuỗi: "tuan" thì bình thường, nhưng "Tran Minh Tuan" lại báo lỗi.

            Comment


            • #7
              ko bik bên bạn sao chứ bên mình chạy bình thường cả Capture.PNG

              Comment


              • #8
                á... máy bị điên rồi hả trời... T_T. cảm ơn anh...

                Comment


                • #9
                  Originally posted by 12520486 View Post
                  á... máy bị điên rồi hả trời... T_T. cảm ơn anh...
                  Ai nói ? code bị thì có chứ ở đó mà máy điên.
                  Xem thử coi cất phát bao nhiêu byte cho con trỏ s ? Và lúc em xài thì em đòi bao nhiêu byte?

                  char *s=new char;// Cấp phát vùng nhớ 1 byte
                  Vậy mà lúc nhập lại nhập: "tuan" hay "Nguyên minh tuan " j j . Không có lỗi mới lạ.
                  Ah, nếu ai có thắc mắc là :"Sao máy em chạy bình thường cơ mà " thì nói luôn là C/C++ lúc lập trình không fai cứ chạy đc là đúng. Nếu đúng sao máy đúng máy sai?
                  Vậy nhé.

                  Im a british accent lover

                  Comment


                  • #10
                    Originally posted by 08520016 View Post
                    Ai nói ? code bị thì có chứ ở đó mà máy điên.
                    Xem thử coi cất phát bao nhiêu byte cho con trỏ s ? Và lúc em xài thì em đòi bao nhiêu byte?



                    Vậy mà lúc nhập lại nhập: "tuan" hay "Nguyên minh tuan " j j . Không có lỗi mới lạ.
                    Ah, nếu ai có thắc mắc là :"Sao máy em chạy bình thường cơ mà " thì nói luôn là C/C++ lúc lập trình không fai cứ chạy đc là đúng. Nếu đúng sao máy đúng máy sai?
                    Vậy nhé.
                    vậy anh cho hỏi phải khắc phục thế nào đây ạ?
                    cũng là câu lệnh cấp phát vùng nhớ đấy mà sao máy anh Việt chạy được còn máy em lại không?
                    nếu như em muốn cấp phát 1 vùng nhớ tiết kiệm nhất và khả dụng cho mọi chuỗi thì phải code thế nào đây ạ?
                    rất nhiều câu hỏi, và thắc mắc cũng không ít:
                    nếu theo anh nói nó chỉ cấp vùng nhớ 1 byte thì em cũng đâu chạy được chuỗi "tuan" vì có 1 byte bộ nhớ thì nó lưu kí tự NULL mất rồi.
                    tình hình là 1 đoạn code mà 2 máy 1 máy chạy được 1 máy ko =.=! chứ cái lỗi has stopped working mà ko phải do code thì em chỉ biết cài lại win thôi.
                    với lại em không hiểu lắm cậu: "nếu đúng sao máy đúng máy sai?" thiết nghĩ cùng 1 đoạn code được dịch trong cùng 1 môi trường thì phải có chức năng giống nhau chứ =.=! đoạn code này khá đơn giản và đâu có động gì đến những file khác trong máy đâu ạ? sợ là khi chạy có phần mềm nào xung đột với code của em thôi, em code trên máy riêng mà. em nghĩ anh hơi "cao siêu hóa" cái bài này rồi.
                    cảm ơn chia sẻ của anh ạ.
                    Last edited by 12520486; 24-12-2012, 03:58.

                    Comment


                    • #11
                      Originally posted by 12520486 View Post
                      vậy anh cho hỏi phải khắc phục thế nào đây ạ?
                      cũng là câu lệnh cấp phát vùng nhớ đấy mà sao máy anh Việt chạy được còn máy em lại không?
                      nếu như em muốn cấp phát 1 vùng nhớ tiết kiệm nhất và khả dụng cho mọi chuỗi thì phải code thế nào đây ạ?
                      rất nhiều câu hỏi, và thắc mắc cũng không ít:
                      nếu theo anh nói nó chỉ cấp vùng nhớ 1 byte thì em cũng đâu chạy được chuỗi "tuan" vì có 1 byte bộ nhớ thì nó lưu kí tự NULL mất rồi.
                      tình hình là 1 đoạn code mà 2 máy 1 máy chạy được 1 máy ko =.=! chứ cái lỗi has stopped working mà ko phải do code thì em chỉ biết cài lại win thôi.
                      với lại em không hiểu lắm cậu: "nếu đúng sao máy đúng máy sai?" thiết nghĩ cùng 1 đoạn code được dịch trong cùng 1 môi trường thì phải có chức năng giống nhau chứ =.=! đoạn code này khá đơn giản và đâu có động gì đến những file khác trong máy đâu ạ? sợ là khi chạy có phần mềm nào xung đột với code của em thôi, em code trên máy riêng mà. em nghĩ anh hơi "cao siêu hóa" cái bài này rồi.
                      cảm ơn chia sẻ của anh ạ.
                      Code em sai. Nó sẽ phát sinh run-time error tùy vào tình hình phân bố bộ nhớ máy tính tại thời điểm chạy. Vì chương trình sử dụng các vùng nhớ nhiều hơn số được cấp phát cho nó nên nếu vùng nhớ đó vô tình đã bị chương trình khác sử dụng nó sẽ phát sinh lỗi.

                      Comment


                      • #12
                        cảm ơn anh truonganpn... cực kì ngắn gọn và dễ hiểu. ^^!

                        Comment

                        LHQC

                        Collapse
                        Working...
                        X