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

Đề tài: hỏi về chuỗi

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

    Smile hỏi về chuỗi

    đây là bài đảo từ trong 1 câu ngược lại do mình nghĩ ra...nhưng mình thấy cách này nó hơi dài dòng...các bạn còn cách nào tối ưu hơn send cho mình nha đây là code
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    #include<alloc.h>
    void main()
    {
    	char *ch3="con meo con can con cho con";
    	char ch[100]=" ";
    	char ch2[100];
    	char *ch1;
    	clrscr();
    	int k=0;
    
    	strcat(ch,ch3);
    	for(int h=1;h<100;h++)
    		ch2[h]='\0';
    	ch1=(char*)calloc(100,sizeof(char));
    	for(int i=strlen(ch)-1;i>=0;i--)
    	{
    		if(ch[i] != 32)
    		{
    		    ch2[k++]=ch[i];
    		}
    		else
    		{
    			char*ch4=strrev(ch2);
    			strcat(ch4," ");
    			strcat(ch1,ch4);
    			for(int l=0;l<=k;l++)
    				ch2[l]='\0';
    			k=0;
    			for(l=0;l<strlen(ch4);l++)
    				ch4[l]='\0';
    
    		}
    	}
    	puts(ch1);
    	getch();
    }

  2. #2
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Code của bạn trên compiler C for Dos mình k test đc, nhưng mình đưa ra một cách khác bạn có thể tham khảo thêm.
    C Code:
    1. /** Author: QuangHoang
    2.   * File: DaoChuoi(C).c
    3.   * Date: 20090201
    4.   * Info: Dao chuoi "con meo con can con cho con" thanh "con cho con can con meo con",
    5.   *       dao nguoc trat tu tu trong cau.
    6.   **/
    7. #include <stdio.h>
    8. #include <string.h>
    9. #include <stdlib.h>  //call function malloc();
    10. /*
    11. */
    12. char* DaoChuoi(char *st);
    13.  
    14. /**Main function**/
    15. int main()
    16. {
    17.     char *st = "con meo con can con cho con";
    18.     //char *st = "123   4561    78907";
    19.     printf ("%s",DaoChuoi(st));
    20.     return 0;
    21. }
    22.  
    23. /*----*/
    24. char* DaoChuoi(char *st)
    25. {
    26.     int n = strlen(st);
    27.     char *tmp = (char*)malloc (n*sizeof(char));
    28.     int i=n-1,t=0;
    29.     while (i>=0)
    30.     {
    31.         while (st[i]==' ' && i>=0)
    32.         {
    33.             tmp[t]=' ';
    34.             i--;t++;
    35.         }
    36.         int j=i;
    37.         while (st[j]!=' ' && j>=0)
    38.         {
    39.             j--;
    40.         }
    41.         for (int k=j+1; k<=i; k++)
    42.         {
    43.             tmp[t]=st[k];
    44.             t++;
    45.         }
    46.         i=j;
    47.     }
    48.     tmp[t]='\0';
    49.     return tmp;
    50. }

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

    ừ cách của bạn dễ hiểu hơn cách của mình thanks nha

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