求纠正;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;
}
输出结果对,但是提交通不过,怎么办?回答满意加分哦,谢谢 展开
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;
}
输出结果对,但是提交通不过,怎么办?回答满意加分哦,谢谢 展开
2个回答
展开全部
具体原因不清楚,改了几个问题:
字符数组移到循环外面;
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等不可见字符
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询