复制字符串

copying a string

本文关键字:字符串 复制      更新时间:2023-10-16

我只能使用<iostream><string>标头。(我正在使用C++(

我将从文本中读取输入并将其转换为小写类型。我读取了输入并将其转换为小写,但我遇到了问题。它可以正确读取转换所有内容,但是当我打印它时,它们之间没有空格。我应该复制字符串中的每个"单词"并计算所有单词。我该怎么做?你可以帮我吗?

我使用这个算法转换为小写:

if('A'<=s[i] && s[i]<='Z') 
    s[i]=s[i]+'a'-'A';

我怎样才能将这个单词一个接一个地复制到另一个字符串中?

这是因为您使用operator >>将输入读入std::string。这有效地从您的输入中删除了所有空格,因为您可以逐字逐句地浏览它。

您需要使用保留空格的输入方法,例如 std::getline 。它也会将输入读入std::string,但会保留空格:

for (std::string line ; std::getline(input, line) ;) {
    // Convert line to lowercase, and write the result
}

现在看不到新行

由于std::getline不保留换行符,因此您需要在写出输出时自己将它们放回原处。例如,像这样:

std::cout << lowercaseString << std::endl