题目描述:
输入一个只包含大小写英文字母和空格的句子,将每个单词的第一个字母改成大写字母。
输入
输入一个长度不超过100的英文句子。
输出
请输出按照要求改写后的英文句子。
样例输入 Copy
i like ACM
样例输出 Copy
I Like ACM
源码:
#include<stdio.h>
#include<string.h> //使用strlen方法所需要的库函数
int main(){
char str[100]; //定义一个数组存放即将输入的字符串
gets(str); //字符串输入
int length=strlen(str); //strlen方法获取字符串长度
if(str[0]>=‘a’&&str[0]<=‘z’){ //首字母需要单独判断
str[0]=str[0]-32;
}
for(int i=0;i<length-1;i++){ //如果发现空格,并且接下来的单词首字母为小写,则根据ASCLL表转化为大写
if(str[i]==’ '&&str[i+1]>=‘a’&&str[i+1]<=‘z’){
str[i+1]=str[i+1]-32;
}
}
for(int i=0;i<length;i++){ //打印转化后的数组
printf("%c",str[i]); //注意输出类型使用%c
}
return 0;
}
总结:
本题难度不大,重点考察了对字符串的逻辑分析以及对临界数据的操作。
需要掌握:
- #include<stdio.h>库函数的strlen方法来获取字符串长度.
2)熟记ASCLL表对应元素的十进制数值,以及相关差值,如a–>z 对应97–>122,A->Z对应65–>90,对应相差32.
喜欢就关注吧!今后会持续更新!我们一起进步!