1304: 串的简单处理
时间限制: 1 Sec 内存限制: 128 MB
题目描述
串的处理
在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下:
1. 把每个单词的首字母变为大写。
2. 把数字与字母之间用下划线字符(_)分开,使得更清晰
3. 把单词中间有多个空格的调整为1个空格。
输入
例如:
用户输入:
you and me what cpp2005program
输出
则程序输出:
You And Me What Cpp_2005_program
样例输入
this is a 99cat
样例输出
This Is A 99_cat
#include<stdio.h>
int main()
{
char a[100];
int i;
gets(a);
for(i=0;a[i]!='\0';i++)
{
if(a[i]!=' ')
{
if(a[i]>='0'&&a[i]<='9')
break;
else if(a[i]>='a'&&a[i]<='z')
{
a[i]=a[i]-32;
break;
}
}
else break;
}
for(i=0;a[i]!='\0';i++)
{
if(a[i]==' ')
{
if(a[i+1]>='a'&&a[i+1]<='z'&&a[i+1]!='\0')
a[i+1]=a[i+1]-32;
}
}
for(i=0;a[i]!='\0';i++)
{
if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')
{
if(a[i+1]>='0'&&a[i+1]<='9')
{
printf("%c",a[i]);
printf("_");
}
else
printf("%c",a[i]);
}
else if(a[i]>='0'&&a[i]<='9')
{
if(a[i+1]>='a'&&a[i+1]<='z')
{
printf("%c",a[i]);
printf("_");
}
else
printf("%c",a[i]);
}
else if(a[i]==' '&&a[i+1]==' ')
continue;
else
printf("%c",a[i]);
}
return 0;
}