Time
Limit: 1
Sec Memory Limit: 128 MB
Submit: 173 Solved: 46
[Submit][Status][Web
Board]
Description
串的处理
在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下:
1.
把每个单词的首字母变为大写。
2.
把数字与字母之间用下划线字符(_)分开,使得更清晰
3.
把单词中间有多个空格的调整为1个空格。
Input
例如:
用户输入:
you
and
me what cpp2005program
Output
则程序输出:
You And Me What Cpp_2005_program
Sample Input
this is a 99cat
Sample Output
This Is A 99_cat
HINT
#include
#include
using namespace std;
int main()
{
char a[100];
gets(a);
int n,m,i;
for(i=0;;i++)
if(a[i]=='\0')
break;
if(a[0]>='a'&&a[0]<='z')
a[0]=a[0]-32;
for(n=0;n
if(a[n]=='
'&&(a[n+1]>='a'&&a[n+1]<='z'))
a[n+1]=a[n+1]-32;
for(m=0;m
if(a[m]==' '&&a[m+1]==' ')
continue;
else
if((a[m]>='0'&&a[m]<='9')&&(a[m+1]>='0'&&a[m+1]<='9'))
{cout<<a[m];
continue;}
else
if(a[m]>='0'&&a[m]<='9'&&a[m+1]!='
'&&a[m+1]!='\0')
cout<<a[m]<<'_';
else
if(((a[m]>='a'&&a[m]<='z')||(a[m]>='A'&&a[m]<='Z'))&&(a[m+1]>='0'&&a[m+1]<='9'))
cout<<a[m]<<'_';
else
cout<<a[m];
cout<<endl;
return 0;
}