/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
题目:程序将英文句子中各单词首字母改成大写,并将各单词分行显示。单词间
的空格数不定。
例如:英文句子为"welcome to c world "
程序运行结果为:
Welcome
To
C
World
------------------------------------------------------------------------
注意:请勿改动程序中的其他内容。
----------------------------------------------------------------------*/
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<ctype.h>
#include<stdlib.h>
int main()
{
char s[]= "welcome to c world ";
int i,inword;
inword=0;
/**********Program**********/
for(i=0;s[i];++i)
{
if(isalpha(s[i]))
{
if(inword==0)
{
s[i]=s[i]-32;
inword=1;
}
putchar(s[i]);
}
else
{
if(inword==1)
{
inword=0;
printf("\n");
}
}
}
/********** End **********/
return 0;
}
请教一道C语言程序设计
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- Endermund 2023-05-24 16:58关注
哪个地方不理解
int main() { char s[] = "welcome to c world "; int i, inword; inword = 0; /**********Program**********/ for (i = 0; s[i]; ++i) { if (isalpha(s[i]))//如果s[i]是字母,则为真 { if (inword == 0)//找到第一个字母 { s[i] = s[i] - 32;//根据ascii码表,A 比 a 小32 inword = 1;//防止welcome整串大写 } putchar(s[i]);//打印s[i] } else//当 Welcome 打印完了之后,后面是字符'\0'不是字母,所以判断来这 { if (inword == 1) { inword = 0;//重置,找第一个字母 printf("\n");//换行 } //重置之后else语句里面当成空语句 } } /********** End **********/ return 0; }
有帮助的话还请采纳~
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 微信小程序商城如何实现多商户收款 平台分润抽成
- ¥15 HC32L176调试了一个通过TIMER5+DMA驱动WS2812B
- ¥15 三菱FX系列PLC串口指令
- ¥15 cocos的js代码调用wx.createUseInfoButton问题!
- ¥15 关于自相关函数法和周期图法实现对随机信号的功率谱估计的matlab程序运行的问题,请各位专家解答!
- ¥15 Python程序,深度学习,有偿私
- ¥15 扫描枪扫条形码出现问题
- ¥35 poi合并多个word成一个新word,原word中横版没了.
- ¥15 【火车头采集器】搜狐娱乐这种列表页网址,怎么采集?
- ¥15 求MCSCANX 帮助