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

Đề tài: Mảng các xâu kí tự

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

    Mặc định Mảng các xâu kí tự

    Mình đang làm 1 bài về xâu kí tự
    Đề bài yêu cầu
    Nhập danh sách gồm n (2 <= n <= 20) tên người. Chuẩn hóa các tên được nhập vào, và sắp xếp danh sách theo thứ tự tăng dần.
    Mình định dùng 1 mảng 2 chiều kiểu char để nhập vào nhưng ko ổn chút nào )...
    Các bạn giúp mình với nhé...Thanks nhiều

  2. #2
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    đúng là cậu có thể dùng mảng char để xài đó
    cậu khai báo mảng 2 chiều với chiều thứ nhất là chiều của số thứ tự,chiều thứ 2 là chiều chứa mảng ký tự

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

    Vấn đề là mình ko hiểu cách nhập tên vào mảng 2 chiều như thế nào..
    Đây là đoạn code của mình...các bạn xem và cho biết ý kiến giúp nhé
    Đề bài :
    Nhập danh sách gồm n (2 <= n <= 20) tên người. Chuẩn hóa các tên được nhập vào, và sắp xếp danh sách theo thứ tự tăng dần.
    Code:
    #include <iostream>
    #include <conio.h>
    #include <string.h>
    void Chuanhoa(char S [])
    {
    	int i,len,j;
       len = strlen(S);
       for (i=0;i<len;i++)
       {
       	//Xoa khoang trang.
         if (S[i]==32)
         {
          	if (S[i+1]==32)
            {
    	    for (j=i+1;j<len-1;j++)
                   S[j]=S[j+1];
                S[len-2]='\0';
                len-=1;
             }
          }
          else
          //Chuan hoa. Ten dang Axxxx Bxxxx Cxxxx
          {
          	if (S[i-1]==32)
                if ((S[i]>=97)&&(S[i]<=122))
                	S[i]-=32;
            else
                if ((S[i]>=65)&&(S[i]<=90))
                	S[i]+=32;
          }
       }
    };
    
    int main()
    {
    	int n,i;
    	Nhap:
       cout<<"Nhap vao so nguoi trong danh sach : ";
       cin>>n;
       if ((n<2)||(n>20))
       {
          cout<<"Nhap sai. Gia tri phai tu 2 den 20. \n";
          goto Nhap;
       }
       char S[20][100];
       for (i=0;i<n;i++)
       {
          cout<<"Ten nguoi thu " <<(i+1)<<" : ";
          cin.getline(S[i],100);       //Minh ko hieu cho nay
       }
       for (i=0;i<n;i++)
       {
       	Chuanhoa(S[i]);
       	cout<<"Ten nguoi thu "<<(i+1)<<" : "<<S[i]<<"\n";
       }
       getch();
       return 0;
    }
    Sắp xếp tăng dần mình chưa làm chỉ chuẩn hóa và nhập ra thôi.
    Đã được chỉnh sửa lần cuối bởi ilikegame : 08-10-2008 lúc 03:18 PM.

  4. #4
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    #include <iostream>
    #include <conio.h>
    #include <string.h>
    void Chuanhoa(char S [])
    {
    int i,len,j;
    len = strlen(S);
    for (i=0;i<len;i++)
    {
    //Xoa khoang trang.
    if (S[i]==32)
    {
    if (S[i+1]==32)
    {
    for (j=i+1;j<len-1;j++)
    S[j]=S[j+1];
    S[len-2]='\0';
    len-=1;
    }
    }
    else
    //Chuan hoa. Ten dang Axxxx Bxxxx Cxxxx
    {
    if (S[i-1]==32)
    if ((S[i]>=97)&&(S[i]<=122))
    S[i]-=32;
    else
    if ((S[i]>=65)&&(S[i]<=90))
    S[i]+=32;
    }
    }
    };

    int main()
    {
    int n,i;
    Nhap:
    cout<<"Nhap vao so nguoi trong danh sach : ";
    cin>>n;
    cin.ignore();
    if ((n<2)||(n>20))
    {
    cout<<"Nhap sai. Gia tri phai tu 2 den 20. \n";
    goto Nhap;
    }
    char S[20][100];
    for (i=0;i<n;i++)
    {
    cout<<"Ten nguoi thu " <<(i+1)<<" : ";
    cin.getline(S[i],100); //Minh ko hieu cho nay
    }
    for (i=0;i<n;i++)
    {
    Chuanhoa(S[i]);
    cout<<"Ten nguoi thu "<<(i+1)<<" : "<<S[i]<<"\n";
    }

    return 0;
    }
    cậu làm đúng rồi đó,chỉ quên không xóa stdin đi thôi,không hiểu chỗ cấp phát 2 chiều ah,chiều thứ nhất là chiều số thứ tự chiều thứ 2 là chiều mảng,có vậy thôi

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