题解 | #首字母大写#

首字母大写

https://www.nowcoder.com/practice/91f9c70e7b6f4c0ab23744055632467a

//土尔逊Torson 编写于2023/4/20
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <stdlib.h>

using namespace std;

bool isSpliter(char c) {//在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符('\t')、回车符('\r')、换行符('\n')。
	if (c == ' ' || c == '\t' || c == '\r' || c == '\n' || c == '\0') {
		return true;
	}
	else {
		return false;
	}
}

int main() {
	//双指针步进即可,用string再split太慢了

	//scanf会吃掉空格,用getline 
	string words;
	while (getline(cin, words)) {
		words = words + '\0';  //末尾加结束符,因为循环时会跳过结尾处,处理字符串要注意边界问题。
		int i = 0, j = 0;
		while (words[j] != '\0' && words[i] != '\0') {
			while (!isSpliter(words[j])) j++;
			if ('a' <= words[i] && words[i] <= 'z') words[i] -= 32;
			i = ++j;
		}
		words = words.substr(0, words.size() - 1); //恢复原始大小
		printf("%s\n", words.c_str());
	}
	//system("pause");
	return EXIT_SUCCESS;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
找工作时遇到的神仙HR
点赞 评论 收藏
分享
湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 18:05
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务