đú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ự
Mình đang làm 1 bài về xâu kí tự
Đề bài yêu cầuMình định dùng 1 mảng 2 chiều kiểu char để nhập vào nhưng ko ổn chút nàoNhậ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.)...
Các bạn giúp mình với nhé...Thanks nhiều
đú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ự
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.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.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; }
Đã được chỉnh sửa lần cuối bởi ilikegame : 08-10-2008 lúc 03:18 PM.
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#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;
}