Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 24 kết quả

Đề tài: Không hiều vài điều về chuỗi

  1. #1
    Ngày gia nhập
    03 2008
    Nơi ở
    Nhà tù
    Bài viết
    37

    Mặc định Không hiều vài điều về chuỗi

    Code:
    #include<stdio.h>
    #include<conio.h>
    char *strchr(char *s,char c);
    void main(void)
    { char s[80],c;
      char i;
         printf("Nhap s=");gets(s);
         printf("Nhap c=");scanf("%s",&c);
         strchr(s,c);
         if(strchr(s,c)!=0) printf("Trong chuoi s co ky tu %c: .Vi tri xh la %d:",c,i);
        else printf("Ko xh!");
    }
    char *strchr(char *s,char c)
    {
         for(char i=1;s[i]!='\0';i++)
         { if(s[i]==c)
             { break;
                 return 1;
             }
       }
         if(s[i]=='\0') return 0;
    }
    Đoạn code trên em không hiểu một số chỗ:
    Code:
    char *strchr(char *s,char c)
    {
         for(char i=1;s[i]!='\0';i++)
         { if(s[i]==c)
             { break;
                 return 1;
             }
       }
         if(s[i]=='\0') return 0;
    Cái đoạn này có nghĩa là gì

    Code:
     if(strchr(s,c)!=0) printf("Trong chuoi s co ky tu %c: .Vi tri xh la %d:",c,i);
    Và ở hàm main có cái gì liên quan đến biến i đâu mà lại có thể in vị trí xuất hiện ra được.

    Cám ơn các anh nhiều!

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

    Bạn hỏi vậy chứng tỏ cũng hiểu rồi đó ^^ .

    Và ở hàm main có cái gì liên quan đến biến i đâu mà lại có thể in vị trí xuất hiện ra được.
    Hoàn toàn chính xác .

    Thực sự nếu bạn cho i là biến toàn cục , tức là khai báo trước mọi hàm con kể cả hàm main thì bài sẽ đúng .

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

    Bạn cần xem lại code của bạn trước khi hỏi ! Bạn định viết một cái gì vậy.

  4. #4
    Ngày gia nhập
    03 2008
    Bài viết
    7

    Code:
         for(char i=1;s[i]!='\0';i++)
    Cái gì đấy?

  5. #5
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Đây là cái cậu cần
    C Code:
    1. #include<stdio.h>
    2. //#include<conio.h> không xài nó thì không cần đưa vào
    3.  
    4. char* strchr(char *s,char c, int& position);
    5. //void main(void) //không có void main(void)
    6. int main() //int main(void) kiểu này là style lâu rùi, dùng int main() là ok
    7. {
    8.   char s[80], c;
    9.   //char i;
    10.   int position;
    11.   printf("Nhap s=");
    12.   gets(s);
    13.   printf("Nhap c=");
    14.   //scanf("%s",&c); //kí tự là %c không phải s.
    15.   scanf(" %c", &c); //chừa 1 khoảng trắng trước _%c nếu không khi enter xong kí tự enter sẽ dính vào c -> kết quả quái lạ.
    16.   strchr(s,c, position); //muốn có vị trí, thêm 1 biến truyền tham chiếu vào.
    17.  
    18.   if(strchr(s,c, position) != 0)
    19.     printf("Trong chuoi s co ky tu %c: .Vi tri xh la %d:", c , position);
    20.   else
    21.     printf("Ko xh!");
    22. }
    23. char* strchr(char *s, char c, int& position)
    24. {
    25.   //for(char i = 1; s[i]!='\0';i++)
    26.   for(int i = 0; s[i] != '\0'; ++i)
    27.   {
    28.     if(s[i] == c)
    29.     {
    30.       //break;
    31.       position = i; //đây là vị trí cần tìm
    32.       return 1;
    33.     }
    34.   }
    35.   return 0;
    36. }

  6. #6
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    Mặc định Không hiều vài điều về chuỗi

    Trích dẫn Nguyên bản được gửi bởi kegiaumat055 Xem bài viết
    C++ Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. char *strchr(char *s,char c);
    4. void main(void)
    5. { char s[80],c;
    6. [B][COLOR="Red"]  char i;[/COLOR][/B]
    7.      printf("Nhap s=");gets(s);
    8.      printf("Nhap c=");scanf("%s",&c);
    9.      strchr(s,c);
    10.      if(strchr(s,c)!=0) printf("Trong chuoi s co ky tu %c: .Vi tri xh la %d:",c,[COLOR="Red"][B]i[/B][/COLOR]);
    11.     else printf("Ko xh!");
    12. }
    13. char *strchr(char *s,char c)
    14. {
    15.      for(char i=1;s[i]!='\0';i++)
    16.      { if(s[i]==c)
    17.          { break;
    18.              return 1;
    19.          }
    20.    }
    21.      if(s[i]=='\0') return 0;
    22. }
    Không biết bạn lấy i ở đâu ra mà lại cho rằng i là vị trí c nằm trong s
    Đã được chỉnh sửa lần cuối bởi Forlorn_hope : 10-04-2008 lúc 11:37 PM.
    Không biết ghi gì luôn ...

  7. #7
    Ngày gia nhập
    03 2008
    Bài viết
    7

    Trích dẫn Nguyên bản được gửi bởi rox_rook Xem bài viết
    Đây là cái cậu cần
    C Code:
    1. #include<stdio.h>
    2. //#include<conio.h> không xài nó thì không cần đưa vào
    3.  
    4. char* strchr(char *s,char c, int& position);
    5. //void main(void) //không có void main(void)
    6. int main() //int main(void) kiểu này là style lâu rùi, dùng int main() là ok
    7. {
    8.   char s[80], c;
    9.   //char i;
    10.   int position;
    11.   printf("Nhap s=");
    12.   gets(s);
    13.   printf("Nhap c=");
    14.   //scanf("%s",&c); //kí tự là %c không phải s.
    15.   scanf(" %c", &c); //chừa 1 khoảng trắng trước _%c nếu không khi enter xong kí tự enter sẽ dính vào c -> kết quả quái lạ.
    16.   strchr(s,c, position); //muốn có vị trí, thêm 1 biến truyền tham chiếu vào.
    17.  
    18.   if(strchr(s,c, position) != 0)
    19.     printf("Trong chuoi s co ky tu %c: .Vi tri xh la %d:", c , position);
    20.   else
    21.     printf("Ko xh!");
    22. }
    23. char* strchr(char *s, char c, int& position)
    24. {
    25.   //for(char i = 1; s[i]!='\0';i++)
    26.   for(int i = 0; s[i] != '\0'; ++i)
    27.   {
    28.     if(s[i] == c)
    29.     {
    30.       //break;
    31.       position = i; //đây là vị trí cần tìm
    32.       return 1;
    33.     }
    34.   }
    35.   return 0;
    36. }
    Chạy thử code chưa RR,
    Code:
    char* strchr(char *s,char c, int& position);
    Xác định lại việc sử dụng biến position.

  8. #8
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    C++ Code:
    1. #include<stdio.h>
    2. //#include<conio.h> không xài nó thì không cần đưa vào
    3.  
    4. int strchr(char *s,char c, int& position);
    5. //void main(void) //không có void main(void)
    6. int main() //int main(void) kiểu này là style lâu rùi, dùng int main() là ok
    7. {
    8.   char s[80], c;
    9.   //char i;
    10.   int position;
    11.   printf("Nhap s=");
    12.   scanf("%s",&s);
    13.   printf("Nhap c=");
    14.   //scanf("%s",&c); //kí tự là %c không phải s.
    15.   scanf(" %c", &c); //chừa 1 khoảng trắng trước _%c nếu không khi enter xong kí tự enter sẽ dính vào c -> kết quả quái lạ.
    16.   strchr(s,c, position); //muốn có vị trí, thêm 1 biến truyền tham chiếu vào.
    17.  
    18.   if(strchr(s,c, position) != 0)
    19.     printf("Trong chuoi s co ky tu %c: .Vi tri xh la %d:", c , position+1);
    20.   else
    21.     printf("Ko xh!");
    22. }
    23. int strchr(char *s, char c, int& position)
    24. {
    25.   //for(char i = 1; s[i]!='\0';i++)
    26.   for(int i = 0; s[i] != '\0'; ++i)
    27.   {
    28.     if(s[i] == c)
    29.     {
    30.       //break;
    31.       position = i; //đây là vị trí cần tìm
    32.       return 1;
    33.     }
    34.   }
    35.   return 0;
    36. }

    đã chỉnh sửa đôi chút code của rook, test chính xác rồi đấy. Bạn xem lại ha.
    Không biết ghi gì luôn ...

  9. #9
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Chạy thử code chưa RR,
    Tất nhiên là nếu c không xuất hiện thì position là garbage nhưng tui không hiểu cậu mark & cái reference để làm gì ?
    Xác định lại việc sử dụng biến position.
    Sai chỗ nào nhỉ ?

  10. #10
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    Trích dẫn Nguyên bản được gửi bởi rox_rook Xem bài viết
    Tất nhiên là nếu c không xuất hiện thì position là garbage nhưng tui không hiểu cậu mark & cái reference để làm gì ?
    Sai chỗ nào nhỉ ?
    ht test bài của ông anh, thì kết quả trả về của hàm kia là *char thì trả về không được kiểu số. Thế thôi, còn ý bạn kia thì ht chịu
    Không biết ghi gì luôn ...

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

  1. Bài tập C++ Cách để so sánh 2 chuỗi kí tự giữa chuỗi nhập từ phím và chuỗi từ file xem có giống nhau không?
    Gửi bởi davilson18 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 09-06-2012, 09:47 AM
  2. 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
  3. 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
  4. Trả lời: 1
    Bài viết cuối: 29-06-2011, 12:02 AM
  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