Announcement

Collapse
No announcement yet.

[C++] các anh giúp em về bài này nhé :D

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

  • [C++] các anh giúp em về bài này nhé :D

    nhập 1 chuỗi bất kì và xoá các kí tự là chữ số.
    vd: "124asdwa52a15" sau khi xoá => "asdwaa" .
    mong các anh em giúp đỡ . cám ơn trước luôn nhé

  • #2
    PHP Code:
    #include <iostream>
    #include <string>
    using namespace std;
    int main()
    {
        
    // get input string
        
    string inputString;
        
    cout << "Input-string : ";
        
        
    getline(cininputString);
        
        
    // write result
        
    cout << "Result : ";
           for(
    int i inputString.length() ; ++ i)
            if(
    inputString[i] < '0' || inputString[i] > '9')
                
    cout << inputString[i];
        
    cout << endl;

        
    // successfull termination
        
    return(0);

    nguyendauit@gmail.com

    Comment


    • #3
      bài này sáng thi làm không được..
      not..

      Comment


      • #4
        Originally posted by 10520100 View Post
        PHP Code:
        #include <iostream>
        #include <string>
        using namespace std;
        int main()
        {
            
        // get input string
            
        string inputString;
            
        cout << "Input-string : ";
            
            
        getline(cininputString);
            
            
        // write result
            
        cout << "Result : ";
               for(
        int i inputString.length() ; ++ i)
                if(
        inputString[i] < '0' || inputString[i] > '9')
                    
        cout << inputString[i];
            
        cout << endl;

            
        // successfull termination
            
        return(0);

        Góp ý với bạn Nguyên 1 tí : (Ngoài lề nha)
        return(0);, theo mình hiểu, có thể sai, nó là return (0);, sau khi làm phép tính toán bên trong dấu ngoặc, nó chỉ còn lại return 0;
        trong khi đó viết return(0); sẽ gây ngộ nhận return là 1 hàm và return(0); là việc gọi hàm return đó (thực chất không phải). Tốt nhất là đừng nên viết code gây ngộ nhận .
        Khoảng cách giữa bạn và ước mơ của bạn là bao xa ?

        Comment


        • #5
          Originally posted by 10520100 View Post
          PHP Code:
          #include <iostream>
          #include <string>
          using namespace std;
          int main()
          {
              
          // get input string
              
          string inputString;
              
          cout << "Input-string : ";
              
              
          getline(cininputString);
              
              
          // write result
              
          cout << "Result : ";
                 for(
          int i inputString.length() ; ++ i)
                  if(
          inputString[i] < '0' || inputString[i] > '9')
                      
          cout << inputString[i];
              
          cout << endl;

              
          // successfull termination
              
          return(0);

          Sao bạn chỉ xuất ra các ký tự là chữ chứ chuỗi ban đầu chưa được xóa các ký tự bằng số mà :-?
          Có thể đại học không là cánh cửa duy nhất để vào đời, nhưng trước khi bạn đủ lớn để biết mình muốn gì thì đại học là "tấm vé" bảo đảm rằng bạn có ít nhất một giá trị.

          Comment


          • #6
            Originally posted by 11520199 View Post
            nhập 1 chuỗi bất kì và xoá các kí tự là chữ số.
            vd: "124asdwa52a15" sau khi xoá => "asdwaa" .
            mong các anh em giúp đỡ . cám ơn trước luôn nhé

            Code:
            #include <iostream>
            #include <string.h>
            using namespace std;
            int main()
            {
            	string str;
            	cin>>str;
            	for(int i=0; i<str.length(); i++)
            	if(str[i]<'A' || (str[i] < 'a' && str[i] >'Z') || str[i] >'z') 
            	{str.erase(i,1); i--;}
            	cout<<str<<endl;
            	system("pause");
            }
            University of Information Technology
            Cao Văn Nhàn _ CE10520355
            SĐT: 0188 403 4943

            Email: caovannhan2002@gmail.com

            Comment


            • #7
              @Anh châu : dạ em cảm ơn anh !
              @Anh Hậu : tại thằng ku em kia không nói gì nên em không biết, nên em cứ viết thế thôi, tùy ý người dùng chỉnh sửa đôi chút, tại nó cũng na ná nhau. Em sợ dùng hàm xóa phần tử lâu nên dùng 1 string thay thế luôn.
              PHP Code:
              string result;
              int resultLength 0;
              for (
              int i inputString.length() ; ++ i)
                  if (
              inputString[i] < '0' || inputString[i] > '9')
                      
              result[resultLength ++] = inputString[i]; 
              nguyendauit@gmail.com

              Comment


              • #8
                sorry các anh nhe nhưng các anh có thể viết bẳng c dc ko ? em đoc của anh Đào Anh Nguyên là ko hiểu gì luôn

                Comment


                • #9
                  Mai thi thực hành rồi giờ vẫn còn hỏi bài thì hơi nguy á nha các bạn

                  Comment


                  • #10
                    Tiêu đề C++ mà đòi plain C =))

                    Về cơ bản là lấy chiều dài chuỗi rồi dùng vòng lặp for dò từng ký tự. Nếu ký tự đó lớn hơn '9' hoặc nhỏ hơn '0', tức là không phải chữ số, thì giữ nguyên hoặc xuất ra màn hình, copy sang chuỗi khác, etc; nếu là chữ số thì xóa khỏi chuỗi hoặc gì gì đó khác.

                    Chắc thầy đã nói về việc ký tự cũng so sánh được + cách xóa trong chuỗi rồi nên ko cần nhắc lại.

                    btw: bài này dễ thế mà :-?

                    Comment


                    • #11
                      Originally posted by truonganpn View Post
                      Mai thi thực hành rồi giờ vẫn còn hỏi bài thì hơi nguy á nha các bạn
                      dạ nhưng em đã ôn rồi nhưng cái này khá khó nên hỉ cho chắc ăn ạ
                      Originally posted by 09520243 View Post
                      Tiêu đề C++ mà đòi plain C =))

                      Về cơ bản là lấy chiều dài chuỗi rồi dùng vòng lặp for dò từng ký tự. Nếu ký tự đó lớn hơn '9' hoặc nhỏ hơn '0', tức là không phải chữ số, thì giữ nguyên hoặc xuất ra màn hình, copy sang chuỗi khác, etc; nếu là chữ số thì xóa khỏi chuỗi hoặc gì gì đó khác.

                      Chắc thầy đã nói về việc ký tự cũng so sánh được + cách xóa trong chuỗi rồi nên ko cần nhắc lại.

                      btw: bài này dễ thế mà :-?
                      anh có thể viết giùm em không ạ ? tại em đã thử viết như thế nhưng nó chạy ... và không ra kq chính xác
                      Last edited by Guest; 09-02-2012, 21:06.

                      Comment


                      • #12
                        công nhận nó dễ
                        Nhưng giờ ko viết ra nỗi 1 đoạn code đây
                        Nhật mộ hương quan hà xứ thị
                        Yên ba giang thượng sử nhân sầu
                        Thôi Hiệu

                        Comment


                        • #13
                          hic hic, tại ku em đặt tiêu đề như vậy mà vẹ...
                          PHP Code:
                          #include <stdio.h>
                          #include <stdlib.h>
                          #include <string.h>
                          // define constant
                          #define MAXLENGTH 30

                          int main()
                          {
                              
                          // get input string
                              
                          char *input = new char[MAXLENGTH];
                              
                          printf("Input, please : ");
                              
                          gets(input);
                              
                              
                          // remove digit-character
                              
                          char *output = new char[MAXLENGTH];
                              
                          int index 0;
                              for(
                          int i strlen(input) ; ++ i)
                                      if(
                          input[i] < '0' || input[i] > '9')
                                                  
                          output[index ++] = input[i];
                              
                              
                          // result
                              
                          printf("Result : %s\n"output);

                              
                          delete [] output;
                              
                          delete [] input;
                              return 
                          0;

                          nguyendauit@gmail.com

                          Comment


                          • #14
                            Mấy anh chị cho em "múa rìu qua mắt thợ" tí nha! Chương trình em không hay nhưng hình như nó chạy được, mong anh chị góp ý! Em xin cảm ơn!!!

                            #include <stdio.h>
                            #include <conio.h>
                            #include <string.h>
                            char chuoi[100];
                            void xoa(char *chuoi, int vt)
                            {
                            for(int i=vt;i<strlen(chuoi);i++)
                            chuoi[i]=chuoi[i+1];
                            }
                            int timso(char *chuoi)
                            {
                            int kt=0;
                            for(int i=0;i<strlen(chuoi);i++)
                            if (chuoi[i]>='0'&& chuoi[i]<='9')
                            {
                            kt=1;
                            break;
                            }
                            return kt;
                            }
                            main()
                            {
                            printf("Nhap chuoi: ");
                            gets(chuoi);
                            while(timso(chuoi))
                            {
                            for(int i=0;i<strlen(chuoi);i++)
                            if(chuoi[i]>='0' && chuoi[i]<='9')
                            xoa(chuoi,i);
                            }
                            printf("\nChuoi sau khi xoa so la: ");
                            puts(chuoi);
                            getch();
                            }
                            "Khi bạn sỉ vào mặt một ai đó, thì nhìn lại đi, ba ngón tay còn lại của bạn cũng đang sỉ vào chính mình"

                            Comment


                            • #15
                              Anh ơi!! mình chèn từng kí tự của input vào output không ổn lắm. nếu không gặp kí tự '\0' thì lằm sao kết thúc chuỗi. khi mình in ra sẽ đủ MAXLENTH-1 kí tự..không biết có đúng không anh

                              Originally posted by 10520100 View Post
                              hic hic, tại ku em đặt tiêu đề như vậy mà vẹ...
                              PHP Code:
                              #include <stdio.h>
                              #include <stdlib.h>
                              #include <string.h>
                              // define constant
                              #define MAXLENGTH 30

                              int main()
                              {
                                  
                              // get input string
                                  
                              char *input = new char[MAXLENGTH];
                                  
                              printf("Input, please : ");
                                  
                              gets(input);
                                  
                                  
                              // remove digit-character
                                  
                              char *output = new char[MAXLENGTH];
                                  
                              int index 0;
                                  for(
                              int i strlen(input) ; ++ i)
                                          if(
                              input[i] < '0' || input[i] > '9')
                                                      
                              output[index ++] = input[i];
                                  
                                  
                              // result
                                  
                              printf("Result : %s\n"output);

                                  
                              delete [] output;
                                  
                              delete [] input;
                                  return 
                              0;

                              Last edited by 11520338; 09-02-2012, 21:23.
                              not..

                              Comment

                              LHQC

                              Collapse
                              Working...
                              X