Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
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!
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  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
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    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