codeup.首字母大写
编辑:谯胜平 分类:程序与算法 标签:codeup,字符串处理 发布时间:2019-02-20 浏览次数:2480次
题目描述
对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。
在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符('\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.
一、分析
首先通过gets()函数按行进行读取,因为有多行,所以通过while(gets(c) != NULL)判断是否读取结束。
其次在处理每一行的过程中,不能通过判断字符是否是空格,就直接将其下一个变成对应的大写字母,因为'\t'是制表符,表示的空格数目不固定。
二、代码
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char c[105]; while (gets(c) != NULL) { int len = strlen(c); //处理字符串的每行的第一个字母,大写字母 = 小写字母-32 if (c[0] >= 97 && c[0] <= 122) { c[0] = c[0] - 32; } for (int i = 1; i < len - 1; i++) { //可能存在多个空格,所以使用while进行判断 while (c[i] == ' ') { i++; if (c[i] >= 97 && c[i] <= 122) { c[i] -= 32; } } } printf("%s\n", c); } return 0; }
热门文章
文章标签
- 考研经验(10)
- 计算机考研(8)
- 408(1)
- 数学一(1)
- codeup(4)
- 字符串处理(5)
- web(3)
- 学科评估(2)
- scanf(2)
- gets(1)
- getchar(1)
- sublime text(2)
- java(1)
- 五子棋(1)
- printf(1)
- 最大公约数(1)
- 最小公倍数(1)
- mysql(1)
- 作息时间(2)
- STL(1)
- PAT(2)
- 富文本编辑器(1)
- 数据类型(1)
- 完全二叉树(1)
- 闰月(1)
- 晴天的魔法乐园(6)
- 递归(1)
- 棋盘覆盖问题(1)
- PPT模板(1)
- 谷歌(1)
- unzip(1)
- gcc(1)
- ubuntu(1)
- getline()(1)
- 日历(1)
- 作息时间表(1)
友情链接