|
문자열의 길이에 따른 정렬 질문이요.
물론 strlen을 사용하지 않고 말입니다.
저는 문자열을 입력받아서 문자열의 길이가 적은순으로
다시 정렬하는 프로그램을 짰습니다.
그런데 과정중에서......
a[i]의 배열들값을 c배열로 옮길려는데 옮겨지지가 않는군요.
저번에 어떤 프로그래밍에서
예)를 들어서......
char a[100][100];
int i;
for(i=0; i<10; ++i)
{
cout << "a[" << i << "]= ";
cin >> a[i];
}
같이 2중배열로 선언된 a[100][100]같은 변수는 첫번째 배열숫자
즉 a[i] ="....." 게 해서 제어할수 있는걸로 배웠습니다.
그런데 제가 만든 믿의 문장에서는 이상하게 자꾸 에러가 나오네요.
꼭좀 지적해주세요.
분명 되어야 하는데 안되니 정말 궁금해요.
그럼
#include <iostream.h>
char c[100]; //c는 임시로 배열을 저장하는 기능입니다.
char a[100][100];
int b[100]; //a문자열의 개수를 입력받습니다.
int n;
void maintec(void)
int i,j,k;
for(i=0; i<n; ++i)
{
for(j=0; j<=99; ++j)
{
if(a[i][j]==0)
{
b[i]=j; //문자열의 개수
break; //를 알아냅니다.
}
}
}
for(i=0; i<n-1; ++i)
{
for(j=i+1; j<n; ++j)
{
if (b[i]>b[j])
{
k=b[i]; //개수에 때라서
b[i]=b[j]; //정렬하고 또 그정
b[j]=k; //렬순에 따라서
c=a[i]; //문자열도 정렬하는데
a[i]=a[j]; //그것이 안되요.
a[j]=c;
}
}
}
}
void main()
{
int i;
cout << "총 받아들일 문자의 개수를 쓴다.";
cout << "n= ";
cin >> n;
for(i=0; i<n; ++i)
{
cout << "a[" << i << "]= ";
cin >> a[i];
}
maintec();
cout << "===============================" << '\n';
for(i=0; i<n; ++i)
{
cout << "a[" << i << "]= " << a[i] << '\n';
}
}
|