杭电acm2026 Problem Description输入一个英文句子,将每个单词的第一个字母改成大写字母.Input输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行.Output请输出按照要求
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 10:42:47
杭电acm2026 Problem Description输入一个英文句子,将每个单词的第一个字母改成大写字母.Input输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行.Output请输出按照要求
杭电acm2026
Problem Description
输入一个英文句子,将每个单词的第一个字母改成大写字母.
Input
输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行.
Output
请输出按照要求改写后的英文句子.
Sample Input
i like acm
i want to get an accepted
Sample Output
I Like Acm
I Want To Get An Accepted
我的代码:
#include
int main(void)
{
char str[100],*p;
while(gets(str)!=NULL)
{
p=str;
*p=*p-32;
while(*p++!=NULL)
{
\x05 if(*(p-1)==' ')
\x05\x05 *p=*p-32;
}
while(*p!=NULL)
printf("%c",*p++);
printf("\n");
p=0;
}
return 0;
}
出错原因:输出的是乱码
修改最后输出语句后
代码变为
#include
int main(void)
{
char str[100],*p;
while(gets(str)!=NULL)
{
p=str;
*p=*p-32;
while(*p++!=NULL)
{
\x05 if(*(p-1)==' ')
\x05\x05 *p=*p-32;
}
printf(“%s\n”,str);
p=0;
}
return 0;
}
这样就正确了
我想知道我第一个代码哪里出错 为什么出现乱码.
杭电acm2026 Problem Description输入一个英文句子,将每个单词的第一个字母改成大写字母.Input输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行.Output请输出按照要求
因为while(*p++!=NULL)当*p=NULL时,循环结束然后p=p+1;
接着运行while(*p!=NULL) *p已经不再str数组中他的值是不定的
所以会乱码