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

Đề tài: Làm sao để 1 chuỗi nhập vào ko được có khoảng trắng?

  1. #1
    Ngày gia nhập
    06 2011
    Bài viết
    6

    Mặc định Làm sao để 1 chuỗi nhập vào ko được có khoảng trắng?

    Em muốn hỏi điều kiện để 1 chuỗi nhập vào không đước có khoảng trắng. Nếu user nhập có khoảng trằng thì thông bào nhập lại. VD: abcdef123 [hợp lệ], abcd ef 123 [có khoảng trống nhập lại].
    Cám ơn mọi người đã đọc.

  2. #2
    Ngày gia nhập
    01 2010
    Nơi ở
    Hà Nội
    Bài viết
    128

    bạn chỉ cẩn sử dụng hàm kiểm tra xem có khoảng trắng hay không . Cái này sử dụng strchr(str,c) để tìm vị trí của kí tự c trong xâu str
    Nếu có thì trả về vị trí
    Không thì trả về NULL
    Còn nhập lại thì bạn tự làm nhé ,trong 4rum cũng có rất nhiều !

  3. #3
    Ngày gia nhập
    06 2011
    Bài viết
    6

    Trích dẫn Nguyên bản được gửi bởi kids301090 Xem bài viết
    bạn chỉ cẩn sử dụng hàm kiểm tra xem có khoảng trắng hay không . Cái này sử dụng strchr(str,c) để tìm vị trí của kí tự c trong xâu str
    Nếu có thì trả về vị trí
    Không thì trả về NULL
    Còn nhập lại thì bạn tự làm nhé ,trong 4rum cũng có rất nhiều !
    Cái này em hok hĩu lắm em chỉ mới nhập môn C thui.
    ví dụ hàm nhập vào mã sinh viên. dữ liệu chỉ hợp lệ khi nhập ko có dấu cách[khoảng trống] thì làm sao thế.

  4. #4
    Ngày gia nhập
    01 2010
    Nơi ở
    Hà Nội
    Bài viết
    128

    Nếu là mới nhập môn mà đã biết chuỗi rồi sao ? Biết chuỗi thì phải biết hàm strch(str,c)
    Còn không thì dùng loop kiểm tra nhé :
    C Code:
    1. kt=0// bien kiem tra xem co dau cach hay ko .
    2. for(int i=0;i<strlen(chuoi);i++)
    3. if(chuoi[i]==" ")
    4.   {
    5.       kt=1;// co dau cach
    6.       break;
    7.    }
    8. if(kt=1)
    9.    {
    10.       // Bat nhap lai
    11.    }
    12. else
    13.    {
    14.      //do something
    15.    }

  5. #5
    Ngày gia nhập
    03 2010
    Nơi ở
    Nơi nào đó trong vũ trụ
    Bài viết
    550

    Trích dẫn Nguyên bản được gửi bởi kids301090 Xem bài viết
    Nếu là mới nhập môn mà đã biết chuỗi rồi sao ? Biết chuỗi thì phải biết hàm strch(str,c)
    Còn không thì dùng loop kiểm tra nhé :
    C Code:
    1. kt=0// bien kiem tra xem co dau cach hay ko .
    2. for(int i=0;i<strlen(chuoi);i++)
    3. if(chuoi[i]==" ")
    4.   {
    5.       kt=1;// co dau cach
    6.       break;
    7.    }
    8. if(kt=1)
    9.    {
    10.       // Bat nhap lai
    11.    }
    12. else
    13.    {
    14.      //do something
    15.    }
    bị nhầm ở đây:
    Code:
    if(chuoi[i]==" ")
    phải sửa lại là
    Code:
    if(chuoi[i]==' ')
    Gió thu lạnh lẽo hắt hiu lòng!

  6. #6
    Ngày gia nhập
    08 2010
    Nơi ở
    Home-Hà Đông
    Bài viết
    51

    Mặc định Làm sao để 1 chuỗi nhập vào ko được có khoảng trắng?

    Mình có thêm ý kiến thế này, đoạn code trên của bạn kids301090 mới chỉ kiểm tra được dấu cách (mã ASCII là 32) chứ chưa kiểm tra được dấu tab ngang (mã ASCII là 13), thế nên đoạn code trên có thể sửa thành:

    C Code:
    1. kt=0;
    2. for (int i=0; i<strlen(chuoi); i++)
    3. if (chuoi[i]==32 || chuoi[i]==13)
    4.    {
    5.         kt=1;
    6.         break;
    7.     }

    hoặc sử dụng hàm isspace() để kiểm tra khoảng trắng (để sử dụng hàm này phải khai báo tệp tiêu đề là ctype.h)

    C Code:
    1. kt=0;
    2. for (int i=0; i<strlen(chuoi); i++)
    3. if isspace(chuoi[i])   break;

    Ngoài ra có thể sử dụng hàm strchr(char* str, int ch) thì phải, mình vẫn chưa nghĩ ra

  7. #7
    Ngày gia nhập
    04 2010
    Nơi ở
    Recycle Bin
    Bài viết
    358

    Bạn hãy viết lại hàm nhập thay vì dùng hàm có sẵn. Bạn tham khảo hàm nhập mã số của mình


    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <ctype.h>
    4. void nhapms(char s[], int limit)
    5. {
    6.     char ch;
    7.     int i=0;
    8.     do
    9.     {
    10.         do
    11.         {
    12.             ch=getch();
    13.             if((isalpha(ch)||isdigit(ch))||ch==0xD||ch==0x8)
    14.                 break;
    15.         }while(1);
    16.         if(isalpha(ch)||isdigit(ch))
    17.         {
    18.             s[i++]=ch;
    19.             printf("%c",s[i-1]);
    20.         }
    21.         if(ch==0x8&i>0)
    22.         {
    23.             s[--i]=NULL;
    24.             printf("\b \b");
    25.         }
    26.         if(ch==0xD||i>=limit)
    27.         {
    28.             s[i]=NULL;
    29.             break;
    30.         }
    31.     }while(1);
    32. }
    33. void main()
    34. {
    35.     clrscr();
    36.     char ms[10];
    37.     printf("Nhap chuoi: ");
    38.     nhapms(ms,10);
    39.     printf("\n Chuoi vua nhap: %s",ms);
    40.     getch();
    41. }
    YH : lobuocphuudu_218
    Phone : 0126 463 5095

    http://forums.congdongcviet.com/signaturepics/sigpic55872_2.gif

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

  1. Bài tập C++ Xâu Ký Tự. Nhập Vào Chuỗi Và Thục Hiện Bỏ Khoảng Trắng..
    Gửi bởi vodanh122 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 17
    Bài viết cuối: 04-08-2014, 02:47 PM
  2. Bài tập C nhập chuỗi và xuất ra có bao nhiêu ký tự và khoảng trắng
    Gửi bởi gacontapsu trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 8
    Bài viết cuối: 17-04-2012, 12:17 PM
  3. Nhập một chuỗi có khoảng trắng từ file trong c++?
    Gửi bởi duongquyet 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: 15-05-2011, 09:16 PM
  4. 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
  5. Kỹ thuật C++ Các quy tắc nhập chuỗi trong C++, làm thế nào để nhập chuỗi có khoảng trắng?
    Gửi bởi quyen1991 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 20-11-2010, 03:36 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