一道OJ上的题

qq_33046541 qq_33046541 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
原题:http://codeup.cn/problem.php?cid=100000580&pid=1
题目描述
对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。
在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符('\t')、回车符('\r')、换行符('\n')。

输入
输入一行:待处理的字符串(长度小于100)。

输出
可能有多组测试数据,对于每组数据,
输出一行:转换后的字符串。

样例输入
if so, you already have a google account. you can sign in on the right.
样例输出
If So, You Already Have A Google Account. You Can Sign In On The Right.
我的代码如下,个人认为没问题但通不过,求指教:
#include<cstdio>
#include<cstring>
int main()
{
char szA[120];
int nLen;
int j;
while(gets(szA)!=NULL)
{
j=0;
nLen=strlen(szA);
if(szA[0]>=97&&szA[0]<=122)\\第一个字母单独判断
szA[0]-=32;
for(int i=0;i<nLen;i++)
{
if(szA[i]==' '||szA[i]=='\t'||szA[i]=='\r'||szA[i]=='\n')
j=i;\\遇到指定符号记录
else if(j==i-1)
if(szA[i]>=97&&szA[i]<=122)
szA[i]-=32;\\若某个字母处于指定符号后且为小写,则转换为大写
}
puts(szA);
}
return 0;
}
...全文

相关推荐

评论 11
收藏 已收藏
分享
返回顶部
qq_33046541
C语言 70,039 成员 243,237 内容