先写输入。
注意,字符串中含有空格,所以需要使用按行输入的函数进行读取。这里我推荐大家使用 std::getline () 函数,如下:
而空格位置上要替换的字母由这是第几个空格来决定,所以我们可以使用 cnt 变量,用来记录当前是第几个空格。
如果当前字符是空格,那么 cnt ++;,然后进行替换,这里我使用了 static_cast <char> () 函数,其功能是将给定的 ASCII 码转换成其所对应的字符。
考虑到要转换的是大写字母,所以 cnt += 'A' ,这里注意:为了防止超出范围,我们需要对其进行取模。我写的 cnt 是从 1 开始的,所以还需要减 1。为了简洁,我写了一个函数:
这里我发现了一个小问题,当 x 等于26时,它返回的是 @, 而不是 Z,不知为何,懂的给我讲一下,所以我直接写了一个特判:
主函数部分怎么写,上面说过了,就是简单的把字符串 s 遍历一遍,是空格就转换,计数器加 1。
C++ Code: