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

Đề tài: Đảo các từ trong chuỗi | em muốn viết thêm hàm này

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    9

    Mặc định Đảo các từ trong chuỗi | em muốn viết thêm hàm này

    Bài này cho nhập vào một chuỗi bất kỳ, sau đó cắt bỏ các khoảng trắng ở đầu chuỗi, cuối chuỗi, các khoảng trắng thừa giữa 2 từ (chữ) và in hoa ký tự đầu của mỗi từ, các ký tự khác in thường.
    Bây giờ em muốn viết thêm hàm đảo các từ, Ý tưởng của em thế này có đúng không:
    - cho biến i chạy từ cuối chuỗi, khi gặp một khoảng trắng tức là kết thúc từ thứ nhất thì copy từ đó vào một chuỗi khác,
    - biến i chạy tiếp, nếu gặp một khoảng trắng nữa thì đó là từ thứ 2 thì không biết bắt đầu copy từ vị trí nào đến vị trí nào để lấy được từ thứ 2 này
    - anh / chị nào tư vấn dùm em nhé. Thank,he,he

    Code:
    #include <stdio.h>
    #include <string.h>
    #include <conio.h>
    /*
    void daotu(char *s)
    {	for(int i=0;i<int(strlen(s));i++)
        	{
            if((s[i]==' ')||(s[i]=0))
    			
             strcpy(s,s+i);
                
    }*/
    void xoa_trang(char *s)
    {
        for(int i=0;i<int(strlen(s));i++)
        {
            if(s[0]==' ')
            {
                strcpy(s,s+1);
                i--;
            }
            if(s[i]==' '&&s[i+1]==' ')
            {
                strcpy(s+i+1,s+i+2);
                i--;
            }
        }
        if(s[strlen(s)-1]==' ') 
    		s[strlen(s)-1]=0;
    }
    void dautu(char s[])
    {
    
    		s[0]=s[0]-32;
    	for(int i=1;i<int(strlen(s)-1);i++)
    		if(s[i]==' ')
    			s[i+1]=s[i+1]-32;
    	}
    
    void main()
    {
       char s[125];
       printf("\nNhap chuoi: ");
       gets(s);
       xoa_trang(s);
       	strlwr(s);
       dautu(s);
       printf("\nChuoi sau khi da xoa : ");
       puts(s);
       daotu(s);
       printf("\nChuoi sau khi da dao tu : ");
       puts(s);
       getch();
    }

  2. #2
    Ngày gia nhập
    08 2008
    Nơi ở
    Liên Bang Nga
    Bài viết
    46

    Đơn giản thôi mà, bạn có thể xây dựng cho mình một hàm copy, để copy theo cách của bạn trong quá trình làm việc với chuỗi, hoặc đơn giản là bạn nên sao lưu lấy một chuỗi, sau đó tiến hành với chuỗi sao lưu để khỏi làm mất chuỗi ban đầu. Lần lượt đọc từ cuối chuỗi, sau khi đọc được một từ để ghi vào chuỗi khác rồi thì cắt từ đó ra khỏi chuỗi bằng cách đặt cho phần tử "dấu cách" ngay trước từ đó một kí tự kết thúc chuỗi, giả sử là s[k]='\0'; hoặc là s[k]=NULL;thế là ok thôi. Lại được một chuỗi mới, tiến hành đọc từ cuối chuỗi, cho đến khi nào chuỗi còn lại một từ thì sau thao tác đọc, chuỗi sẽ trở thành NULL
    Tôi thường thích những cái gì mà tôi không bao giờ có được...

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

  1. Bài tập C++ Hỏi cách viết hoa kí tự đầu từ trong một chuỗi ký tự??
    Gửi bởi nlhuykhang trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 22-12-2011, 03:38 PM
  2. Thêm thanh tìm kiếm bài viết trong forum
    Gửi bởi conrongchautien trong diễn đàn Ý kiến, đề xuất và khiếu nại
    Trả lời: 8
    Bài viết cuối: 15-06-2011, 04:58 PM
  3. Đề xuất Nên thêm tool Lọc kết quả khi nhấn vào link Bài viết mới trong diễn đàn
    Gửi bởi quangnh89 trong diễn đàn Ý kiến, đề xuất và khiếu nại
    Trả lời: 1
    Bài viết cuối: 26-05-2011, 10:26 PM
  4. Đề xuất Thêm Xóa, Cám ơn ở mỗi bài viết trong forums
    Gửi bởi nhocck0n trong diễn đàn Ý kiến, đề xuất và khiếu nại
    Trả lời: 6
    Bài viết cuối: 25-05-2011, 03:49 PM
  5. Viết chương trình con thêm 1 phần tử trong danh sách liên kết đã có thứ tự sao cho ta
    Gửi bởi sangtink9 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 23
    Bài viết cuối: 29-01-2011, 10:26 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