Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 19 kết quả

Đề tài: viết hàm trả về vị trí đầu tiên kí tự c trong chuỗi

  1. #1
    Ngày gia nhập
    12 2007
    Bài viết
    54

    Post viết hàm trả về vị trí đầu tiên kí tự c trong chuỗi

    HTML Code:
    // viet ham tra ve vi tri dau tien ki tu c trong chuoi # include<stdio.h> # include<conio.h> int kiem_tra (char *s,char c) { int i=0; while ((s[i])&&(s[i]!=c)) i++; if (s[i]=0) return -1; return i; } void main() { char str[100],ch; printf ("\n Nhap chuoi :"); gets(str); printf("\n Nhap vao 1 ki tu:"); scanf ("%c",&ch); int t= kiem_tra(str,ch); if (t!=-1) printf ("\n vi tri dau tien la %d" ,t); else printf ("\n ki tu ko co trong xau "); }
    Lỗi là ở chỗ : em chỉ tìm được vị trí của 1 kí tự xuất hiện trong xâu còn kí tự ko có trong xâu thì nó chạy sai .
    Rất mong được mọi người giúp đỡ :

    Kiến thức mình biết chỉ là hạt cát trên sa mạc

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    C++ Code:
    1. int kiem_tra (char *s,char c)
    2.  { int i=0;
    3.     while ((s[i])&&(s[i]!=c))
    4.         i++;
    5.     // if (s[i]=0)  bạn sai chỗ này nè
    6.     if (s[i]==0)
    7.         return -1;
    8.     return i;
    9.  }
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    08 2008
    Bài viết
    1

    Xin lỗi, em xen vào 1 tí. Em ko hiểu cái dòng này là sao, ai giải thích hộ được ko
    PHP Code:
    while ((s[i])&&(s[i]!=c)) 
    cái (s[i])&&(s[i]!=c) có nghĩa là gì ?

  4. #4
    Ngày gia nhập
    02 2008
    Nơi ở
    AYS 107
    Bài viết
    41

    Trích dẫn Nguyên bản được gửi bởi thangit Xem bài viết
    Lỗi là ở chỗ : em chỉ tìm được vị trí của 1 kí tự xuất hiện trong xâu còn kí tự ko có trong xâu thì nó chạy sai .
    HTML Code:
    // viet ham tra ve vi tri dau tien ki tu c trong chuoi int kiem_tra (char *s,char c) { int i=0; while ((s[i]!='\0')&&(s[i]!=c)) i++; if (s[i]=='\0') return -1; return i; }
    Mình chỉ chữa 2 chỗ thui, cậu thử xem có được không!!??
    I don't wanna waste another day

  5. #5
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Trích dẫn Nguyên bản được gửi bởi goroshi Xem bài viết
    Xin lỗi, em xen vào 1 tí. Em ko hiểu cái dòng này là sao, ai giải thích hộ được ko
    PHP Code:
    while ((s[i])&&(s[i]!=c)) 
    cái (s[i])&&(s[i]!=c) có nghĩa là gì ?
    nếu s[i] = null ( cuối chuỗi ) thì coi như tương đương với giá trị false và vòng while sẽ dừng. Ý nghĩa của nó là nếu đến cuối hoặc bằng c thì dừng.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  6. #6
    Ngày gia nhập
    02 2008
    Nơi ở
    AYS 107
    Bài viết
    41

    Mặc định viết hàm trả về vị trí đầu tiên kí tự c trong chuỗi

    Nhưng mà cái phép kiểm tra
    Code:
    if(s[i]==0)
    của meoconlongvang có đúng không nhỉ??? Có vẻ không đúng lí thuyết cho lắm, không biết nó có chạy không, mình cũng chưa thử!!
    I don't wanna waste another day

  7. #7
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Trích dẫn Nguyên bản được gửi bởi developer Xem bài viết
    Nhưng mà cái phép kiểm tra
    Code:
    if(s[i]==0)
    của meoconlongvang có đúng không nhỉ??? Có vẻ không đúng lí thuyết cho lắm, không biết nó có chạy không, mình cũng chưa thử!!
    đúng rồi đó bạn ah.
    vì trong C/C++ chuổi được định nghĩa là một mảng ký tự mà phần tử cuối cùng nó dùng để lưu phần tử NULL('\0'). mà trong C/C++ NULL được coi tương tự như 0.

  8. #8
    Ngày gia nhập
    09 2008
    Bài viết
    2

    return -1 la de lam gi vay moi nguoi, toi khong biet la co bao nhieu cach tra ve gia tri bang cau lenh return!! moi nguoi chi giao giup duoc khong?

  9. #9
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    return mấy chả được.

    Cái ở trên của meocon là một hàm
    - nếu thỏa mãn (tìm thấy kí tự xuất hiện) thì trả về vị trí cần tìm
    - ngược lại không có thỏa mãn thì trả về cái giá trị nếu đó dễ nhận biết (thường lấy số âm)
    None!

  10. #10
    Ngày gia nhập
    10 2008
    Bài viết
    5

    Chương trình này đếm hơi buồn cười.
    Vì trong hàm kiểm tra, biến đếm i khởi tạo giá trị bằng 0 => Nó đếm vị trí từ vị trí 0. Mà thực tế vị trí đầu tiên là 1. ^^

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

  1. Kỹ thuật C++ Viết hàm xóa dấu cách đầu tiên trong 1 xâu
    Gửi bởi thebaby trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 25-10-2013, 12:28 PM
  2. Replace chữ đầu tiên tìm thấy trong chuỗi
    Gửi bởi danhailua trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 26-10-2011, 07:47 PM
  3. Bài tập C Viết hàm tìm vị trí phần tử âm đầu tiên trong mảng
    Gửi bởi HoangCoi 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-08-2011, 01:30 PM
  4. viết hàm chèn x vào trước phần tử có gí trị là số nguyên tố đầu tiên trong mảng
    Gửi bởi bobobo trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 17-10-2010, 07:24 PM
  5. Lập trình C Viết chuơng trình tìm và in ra chữ cái đầu tiên theo thứ tự abc trong 1 dãy
    Gửi bởi HoangManhHa1991 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: 25-09-2010, 03:01 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