对用户输入的串进行处理。具体规则如下:
1. 把每个单词的首字母变为大写。
2. 把数字与字母之间用下划线字符(_)分开,使得更清晰
3. 把单词中间有多个空格的调整为1个空格。
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char a[400];
cin.getline(a, 400);
if (a[0] >= 'a'&&a[0] <= 'z') a[0] -= 32;//大小写变化(首字母特殊先拿出来变化)
for (int i = 1; i < strlen(a); i++)
{
if (a[i - 1] == ' ' && (a[i] >= 'a'&&a[i] <= 'z')) a[i] -= 32;
if (a[i - 1] == ' ' && a[i]==' ')
{
for (int j = i; j <strlen(a); j++)
{
a[j-1] = a[j];
}
a[strlen(a)-1]='\0';//末尾补'\0'
}
if(a[i - 1] == ' ' && a[i-2]==' ')
{
for (int j = i; j <strlen(a); j++)
{
a[j-2] = a[j-1];
}
a[strlen(a)-1]='\0';
}
if ((a[i] >= '1'&&a[i] <= '9') && (a[i + 1] >= 'a'&&a[i + 1] <= 'z'))
{
for (int j = strlen(a); j > i; j--)
{
a[j + 1] = a[j];
}
a[i + 1] = '_';
}
if ((a[i + 1] >= '1'&&a[i + 1] <= '9') && (a[i] >= 'a'&&a[i] <= 'z'))
{
for (int q = strlen(a); q > i; q--)
{
a[q + 1] = a[q];
}
a[i + 1] = '_';
}
}
cout << a;
return 0;
}