求纠正;c语言编程题,acm里的题目:首字母变大写

首字母变大写TimeLimit:1000MSMemoryLimit:32768KTotalSubmit:66Accepted:28Description输入一个英文句子,... 首字母变大写
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 <stdio.h>
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]<='z')
s[i]=s[i]-32;
if(s[i]==' ')
{
if(s[i+1]>='a'&&s[i+1]<='z')
s[i+1]=s[i+1]-32;
}
}
for(i=0;(ch=s[i])!='\0';i++)
printf("%c",s[i]);
printf("\n");
}
return 0;
}
输出结果对,但是提交通不过,怎么办?回答满意加分哦,谢谢
展开
 我来答
qmg1023
推荐于2016-06-07 · TA获得超过888个赞
知道小有建树答主
回答量:804
采纳率:0%
帮助的人:893万
展开全部

具体原因不清楚,改了几个问题:


字符数组移到循环外面;

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;
}
追问
isspace是什么?
追答
#include int isspace(int ch);

The isspace( ) function returns nonzero if ch is a whitespace character, including space, horizontal
tab, vertical tab, formfeed, carriage return, or newline characters; otherwise,
zero is returned.

判断是否空白,横向TAB等不可见字符
linwenb63
2013-12-04 · TA获得超过147个赞
知道答主
回答量:46
采纳率:0%
帮助的人:44.4万
展开全部
输出结果对,但是提交通不过

可能是 while(1) 这里要改成 while(!EOF) 一类的. 具体要看你是用什么oj

或者是 循环要求的多少test case

也可能是最后 空格, newline 没有打对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式