兄弟们看看为啥我代码错了
查看原帖
兄弟们看看为啥我代码错了
1386116
penisgod楼主2024/12/19 18:14
#include <iostream>
#include <string>
#include <cctype>
#include <algorithm>  // 用于反转字符串
using namespace std;

int main() {
	string input;
	getline(cin, input);  // 读取整行输入
	
	string word = "";      // 当前单词
	string result = "";    // 存储最终结果
	
	// 从字符串的最后一位开始向前遍历
	for (int i = input.size() - 1; i >= 0; i--) {
		if (input[i] == ' ') {
			// 如果当前是空格,处理当前单词
			if (!word.empty()) {
				// 对单词中的每个字符进行转换
				for (char &c : word) {
					if (islower(c)) {       // 如果是小写字母
						c = toupper(c);     // 转为大写
					} else if (isupper(c)) { // 如果是大写字母
						c = tolower(c);     // 转为小写
					}
				}
				
				result += word + " ";  // 将处理后的单词添加到结果中
				word = "";             // 清空当前单词
			}
		} else {
			word = input[i] + word;  // 如果是字母或数字,将当前字符添加到单词前面
		}
	}
	
	// 处理最后一个单词
	if (!word.empty()) {
		// 对最后一个单词中的每个字符进行转换
		for (char &c : word) {
			if (islower(c)) {
				c = toupper(c);
			} else if (isupper(c)) {
				c = tolower(c);
			}
		}
		result += word;  // 最后一个单词后面没有空格
	}
	
	cout << result << endl;  // 输出结果
	
	return 0;
}

2024/12/19 18:14
加载中...