c++ - 在 C++ 的某些地方向字符串添加空格

标签 c++ string substring

我无法弄清楚在 C++ 中的大写字母字符串中添加空格的过程。如果我有一个字符串“HelloWorld”,如何将其转换为“Hello World”?

我试过使用子字符串和 isupper 函数,但我什么都做不了。

编辑:这是我的代码。我不明白为什么 in = newname 不是有效代码。

string breakStringAtCaps(string in) {
string newname[10];
    int j = 0;
    for (int i = 0; i < in.size(); i++) {
        if (isupper(in[i]) && i != 0) {
            newname[j] = " ";
            j++;
        }
        newname[j] = in[i];
        j++;

    }
    in = newname;
    return in;
}

最佳答案

你可以这样做:

string breakStringAtCaps(const string& in)
{
    string newname;
    for(int i = 0; i < in.size(); i++)
    {
        if(isupper(in[i]) && i != 0)
            newname += " ";
        newname += in[i];
    }
    return newname;
}

关于c++ - 在 C++ 的某些地方向字符串添加空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53295756/

相关文章:

c++ - 为什么函数不能在 Main 之后

php - 检查 haystack 字符串中是否存在数组中的任何值

c# - 如何使用 .NET 获取位于两个 '{' 括号'}' 之间的文本字符串?

tsql - 选择查询以删除非数字字符

c++ - 为什么 std::condition_variable 不能正常工作?总是在等待之前通知

c++ - C++中无序集的大小是否有限制

c++ - c++ 中的硬编码位图会产生倾斜的线条

string - SSIS 条件分割 - 检查字符串是否有子字符串

python - 将字符串格式化为仅在 python 中的单词之间有 n 个空格

java - 为什么它返回错误的字符串?