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

Đề tài: Bài tập về con trỏ và chuỗi kí tự trong C

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

    Question Bài tập về con trỏ và chuỗi kí tự trong C

    Mình có một đề bài thế này:

    Viết hàm theo khai báo sau:
    int doContains(char *s, char c)
    Hàm này thực hiện kiểm tra xem c có tồn tại bên trong mảng s hay không, nếu có thì trả về chỉ số đầu tiên gặp c, nếu không thì trả về -1.

    Do mình đang học về con trỏ nên củng không được sử dụng chỉ số mảng trong hàm trên.

    Mình đã viết thử nhưng có lỗi hoài các bạn góp y giúp mình nhé. Cảm ơn.

  2. #2
    Ngày gia nhập
    05 2011
    Nơi ở
    hell
    Bài viết
    37

    Coi nó là mảng S rồi so sánh nhé. Còn nếu không thì để dịch chuyển chuỗi đó ta dùng s+i. Giá trị là *(s+i)
    Cụ thể, chi tiết hơn thì nên coi lý thuyết con trỏ thật kĩ nhé vì 2 lý do:
    - Sách viết bao giờ cũng cụ thể hơn một bài giảng trên forums
    - Con trỏ là 1 phần quan trọng, đặc biệt của C do đó phải học kỹ nó

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

    C++ Code:
    1. int doContains(char *s, char c)
    2. {
    3.     int i = 0; //giả sử c tại vị trí đầu tiên
    4.     while(*(s+i) != c) i++;   //tìm cho đến khi thấy c
    5.     return i;   //trả về vị trí c đầu tiên trong chuỗi
    6. }

    mong rằng bạn hiểu cách làm
    YH : lobuocphuudu_218
    Phone : 0126 463 5095

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

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

    Trích dẫn Nguyên bản được gửi bởi conrongchautien Xem bài viết
    C++ Code:
    1. int doContains(char *s, char c)
    2. {
    3.     int i = 0; //giả sử c tại vị trí đầu tiên
    4.     while(*(s+i) != c) i++;   //tìm cho đến khi thấy c
    5.     return i;   //trả về vị trí c đầu tiên trong chuỗi
    6. }

    mong rằng bạn hiểu cách làm
    Code này của bạn không ổn vì nếu như c không có trong s thì thành vòng lặp vô tận à.

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

    PHP Code:
    #include "stdafx.h"
    #include <iostream>
    #include <string.h>
    using namespace std;

    void NhapXuat(char *sint *n){

        
    printf("Nhap n: ");
        
    scanf("%d"n);
        
    cin.getline(s, *n);

        
    printf("Nhap mot chuoi: ");
        
    gets(s);
        
    printf("Chuoi vua nhap la: ");
        
    puts(s);

    }

    int doContains(char *schar kt){
        
    // Lay kich thuoc cua chuoi de duyet wa mang ki tu
        
    int n strlen(s);
        
        for(
    int i 0ni++){
            if(*(
    i) == kt// Neu gap tra ve chi so dau tien chu ki tu do
                
    return i;
        }
        return -
    1// Neu ko gap tra ve -1
        
    }


    void main()
    {
        
    int n 0;
        
    char *= new char[n]; // Cap phat dong cho mang ki tu

        
    NhapXuat(s, &n); // Goi ham NhapXuat de nhap xuat chuoi ki tu

        
    char kt[2]; // Khai bao chuoi ki tu gom 2 phan tu: ki tu 0 => ki tu nhap, ki tu 1 => ki tu xuong dong
        
    printf("Nhap 1 ki tu: ");
        
    gets(kt);

        
    int kq doContains(skt[0]); // Gọi hàm trả về chỉ số đầu tiên chứa kí tự cần tìm. Chỉ số mảng từ 0 trở đi
        
    printf("Chi so: %d\n"kq);
        


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

  1. Lập trình C Thay thế chuỗi s1 trong chuỗi s bằng chuỗi s
    Gửi bởi duytue trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 23-09-2011, 04:16 PM
  2. thay thế chuỗi con thứ i trong chuỗi mẹ bằng 1 chuỗi khác
    Gửi bởi nhat1811 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: 06-08-2011, 08:25 AM
  3. Trả lời: 1
    Bài viết cuối: 29-06-2011, 12:02 AM
  4. Trả lời: 7
    Bài viết cuối: 21-03-2011, 09:59 PM
  5. xem một từ trong chuỗi là một chuỗi con, sắp xếp các chuỗi con theo thứ tự tăng dần
    Gửi bởi qpkdct1101 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 20-01-2011, 08:22 AM

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