语法检查

来源:互联网 发布:7001端口 编辑:程序博客网 时间:2024/04/27 04:20

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;
}

YOYO's Note:
先把第一个字母转成大写,然后继续对后面的元素进行检查。
注意可能会有连续的多个空格,也有可能不是由小写字母开头。