[필기시험 문제 4] 문자열 을 보 여 줍 니 다. 이 문자열 은 대문자 로 구성 되 어 있 습 니 다. 함 수 를 만들어 야 합 니 다. 대문자 가 뒤에 있 고 소문 자 는 앞 에 놓 으 며 소문 자 와 대문자 가 각각 작은 것 에서 큰 것 으로 배열 되 어 있 습 니 다.

원래 제목: 문자열 을 보 여 줍 니 다. 이 문자열 은 대문자 로 구성 되 어 있 습 니 다. 함 수 를 만들어 야 합 니 다. 대문자 가 뒤에 있 고 소문 자 는 앞 에 놓 으 며 소문 자 와 대문자 가 각각 작은 것 에서 큰 것 으로 배열 되 어 있 습 니 다.예 를 들 어 제 시 된 원본 문자열 은 'AaZdEBbyCzc' 이 고 정 리 된 문자열 은 'abc gzABCEZ' 함수 원형 void MoveString (char * str) 입 니 다.
사고: 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;
}

좋은 웹페이지 즐겨찾기