FJNU.1742
Description
输入一段英文,对其进行一项语法检查,把每全句子的第一个字母改为大写。假设每个句子由“.”、“!”或“?” 结尾。
Input
字符串
Output
新字符串(答案后不用换行回车)
Sample Input
what a big classroom!there is a student in it.where is li?32basketball.
Sample Output
What a big classroom!There is a student in it.Where is li?32basketball.
My Program
#include
<
iostream
>
#include < string .h >
using namespace std;
void Check( char str[])
... {
int i,n=strlen(str),j;
j=0;
while(str[j]==' ')
j++;
if((str[j]>='a')&&(str[j]<='z'))
str[j]-='a'-'A';
for(i=0;i<n;i++)
if((str[i]=='.')||(str[i]=='!')||(str[i]=='?'))
...{
j=i+1;
while(str[j]==' ')
j++;
if((str[j]>='a')&&(str[j]<='z'))
str[j]-='a'-'A';
}
}
int main()
... {
char str[255];
gets(str);
Check(str);
cout<<str;
return 0;
}
#include < string .h >
using namespace std;
void Check( char str[])
... {
int i,n=strlen(str),j;
j=0;
while(str[j]==' ')
j++;
if((str[j]>='a')&&(str[j]<='z'))
str[j]-='a'-'A';
for(i=0;i<n;i++)
if((str[i]=='.')||(str[i]=='!')||(str[i]=='?'))
...{
j=i+1;
while(str[j]==' ')
j++;
if((str[j]>='a')&&(str[j]<='z'))
str[j]-='a'-'A';
}
}
int main()
... {
char str[255];
gets(str);
Check(str);
cout<<str;
return 0;
}
YOYO's Note:
先把第一个字母转成大写,然后继续对后面的元素进行检查。
注意可能会有连续的多个空格,也有可能不是由小写字母开头。