求纠正;c语言编程题,acm里的题目:首字母变大写首字母变大写Time Limit:1000MS Memory Limit:32768KTotal Submit:66 Accepted:28Description输入一个英文句子,将每个单词的第一个字母改成大写字母. Input输入

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 13:51:02
求纠正;c语言编程题,acm里的题目:首字母变大写首字母变大写Time Limit:1000MS  Memory Limit:32768KTotal Submit:66 Accepted:28Description输入一个英文句子,将每个单词的第一个字母改成大写字母. Input输入

求纠正;c语言编程题,acm里的题目:首字母变大写首字母变大写Time Limit:1000MS Memory Limit:32768KTotal Submit:66 Accepted:28Description输入一个英文句子,将每个单词的第一个字母改成大写字母. Input输入
求纠正;c语言编程题,acm里的题目:首字母变大写
首字母变大写
Time Limit:1000MS Memory Limit:32768K
Total Submit:66 Accepted:28
Description输入一个英文句子,将每个单词的第一个字母改成大写字母.
Input输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行.
Output请输出按照要求改写后的英文句子.
Sample Inputi like acm
i want to get an accepted

Sample OutputI Like Acm
I Want To Get An Accepted

我的答案:
#include
int main()
{
int i;
char ch;
while(1)
{ char s[101]={'\0'};
for(i=0;(ch=getchar())!='\n';i++)
s[i]=ch;
for(i=0;(ch=s[i])!='\0';i++)
{
if(i==0)
if(s[i]>='a'&&s[i]='a'&&s[i+1]

求纠正;c语言编程题,acm里的题目:首字母变大写首字母变大写Time Limit:1000MS Memory Limit:32768KTotal Submit:66 Accepted:28Description输入一个英文句子,将每个单词的第一个字母改成大写字母. Input输入
具体原因不清楚,改了几个问题:


字符数组移到循环外面;
ch变量没有用到去掉了;
输入输出用库函数;
判断空格用库函数(可以支持' '外的空白字符);
精简语句;
#include <stdio.h>
int main()
{
    int i;
    char s[101]={'\0'};
    
    while(1)
    {   
        gets(s);
        for(i=0; s[i]!='\0';i++)
        {
            if(i==0 && s[i]>='a'&&s[i]<='z')
               s[i]=s[i]-32;
            if(isspace(s[i]) && s[i+1]>='a'&&s[i+1]<='z')
               s[i+1]=s[i+1]-32;
        }
        puts(s);
    }
    return 0;
}