⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2449.cpp

📁 这是哈尔滨工业大学acmOJ的源代码
💻 CPP
字号:
/* This Code is Submitted by wywcgs for Problem 2449 on 2007-04-13 at 18:27:18 */
#include <cstdio>
#include <cstring>
#include <cctype>
#include <algorithm>
using namespace std;

const int L = 128;

int main()
{
	char name[L], str[L];

	while(scanf("%s", name) != EOF) {
		int dl = 0, uc = 0;
		for(int i = 0; name[i] != 0; i++)
			if(name[i] == '_') dl++;
			else if(isupper(name[i])) uc++;
		if(uc && dl) printf("Error!");
		else if(uc) {
			if(isupper(name[0])) { printf("Error!\n"); continue; }
			for(int i = 0; name[i] != 0; ) {
				for(; islower(name[i]); i++) putchar(name[i]);
				if(name[i] != 0) { putchar('_'); putchar(name[i]-'A'+'a'); i++; }
			}
		} else if(dl) {
			bool can = true;
			for(int i = 0; name[i] != 0; i++)
				if(i != 0 && (name[i] == '_' && name[i-1] == '_')) can = false;
			int len = strlen(name);
			if(name[0] == '_' || name[len-1] == '_') can = false;
			if(!can) { printf("Error!\n"); continue; }
			for(int i = 0; name[i] != 0; ) {
				for(; isalpha(name[i]); i++) putchar(name[i]);
				if(name[i] != 0) { i++; putchar(name[i]+'A'-'a'); i++; }
			}
		} else printf("%s", name);
		putchar('\n');
	}

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -