[필기시험 문제 4] 문자열 을 보 여 줍 니 다. 이 문자열 은 대문자 로 구성 되 어 있 습 니 다. 함 수 를 만들어 야 합 니 다. 대문자 가 뒤에 있 고 소문 자 는 앞 에 놓 으 며 소문 자 와 대문자 가 각각 작은 것 에서 큰 것 으로 배열 되 어 있 습 니 다.
10310 단어 필기시험 문제 - 알고리즘
사고: 1. 먼저 strlen 으로 문자열 의 크기 를 구하 고 2. 거품 정렬 로 문 자 를 큰 것 에서 작은 것 으로 배열 합 니 다. 3. for 순환 과 if 판단 문 구 를 사용 하여 a 에서 z 의 문 자 를 뒤에서 앞으로 바 꾸 고 4. for 순환 으로 뒤의 A - Z 문자 순 서 를 배열 합 니 다.
#include
using namespace std;
int t;
void movestring(char *str)
{
int weizhi = 0;
t = strlen(str);
for (int i = 0; i < t - 1; i++)
{
for (int j = 0; j < t - i - 1; j++)
{
int h = 0;
if (str[j] > str[j + 1])
{
h = str[j];
str[j] = str[j + 1];
str[j + 1] = h;
}
}
}
for (int i = 0; i < t; i++)
{
int h = 0;
if (str[i] >= 'a'&&str[i] <= 'z')
{
h = str[weizhi];
str[weizhi] = str[i];
str[i] = h;
weizhi++;
}
}
//cout << weizhi<
for (int i = weizhi; i < t - 1; i++)
{
for (int j =weizhi; j < t - i - 1+weizhi; j++)
{
int h = 0;
//cout << j << endl;
if (str[j] > str[j + 1])
{
h = str[j];
str[j] = str[j + 1];
str[j + 1] = h;
//cout << str[j] << endl;
}
}
}
}
int main()
{
char buf[20] = "AaZdEBbyCzc";
movestring(buf);
for (int i = 0; i < t; i++)
{
cout << buf[i] << endl;
}
return 0;
}