如何删除字符串中的所有空格并将数据存储在它们之间?

用户11494833

我是一名新程序员(< 1 年),所以如果我把简单的事情弄复杂了,请原谅。

我正在尝试删除给定字符串中的所有空格(制表符和空格字符),并将数据作为单个元素存储在向量中。我还想考虑前导和尾随空白。

我尝试使用字符串方法在字符串中向前移动两个索引,同时检查这些字符。到目前为止,我已经至少重写了五次代码,但我总是得到:

terminate called after throwing an instance of 'std::out_of_range'
  what():  basic_string::at: __n (which is 7754) >= this->size() (which is 42)
Aborted (core dumped)
#include <iostream>
#include <string>
#include <vector>

using namespace std;

void  makeTokens(string& separate);

int main()
{
    string test = "  u       65.45\t\t   36.12\t     78.25  0.00";

    makeTokens(test);

    return 0;
}

void  makeTokens(string& separate)
{
    vector<string> tokens;
    unsigned short index1, index2 = 0;

    while (separate.at(index1) == ' ' || separate.at(index1) == '\t')
    {
        index1++;
        index2 = index1 + 1;
    }

    while (index2 < separate.length())
    {
        if (separate.at(index2) == ' ' || separate.at(index2) == '\t')
        {
            tokens.push_back(separate.substr(index1, index2 - index1));

            index1 = index2;

            while (separate.at(index1) == ' ' || separate.at(index1) == '\t')
            {
                index1++;
            }

            index2 = index1 + 1;
        }
        else
        {
            index2++;
        }

        if (index2 == separate.length() - 1)
        {
            if (separate.at(index2) == ' ' || separate.at(index2) == '\t')
            {
                tokens.push_back(separate.substr(index1));
            }
        }
    }

    for (unsigned short i = 0; i < tokens.size(); i++)
    {
        cout << tokens[i] << "|" << endl;
    }
}

我希望控制台输出:

u|
65.45|
36.12|
78.25|
0.00|

如果通过了类似的测试字符串,除了末尾有空格,我仍然想要相同的输出。

编辑:我已将索引声明更改为:

unsigned short index1 = 0;
unsigned short index2 = 0;

现在控制台输出:

u|
65.45|
36.12|
78.25|

最后的 0.00 仍然缺失。

保罗·麦肯齐

这很容易通过使用std::istringstream

#include <string>
#include <sstream>
#include <iostream>
#include <vector>

int main()
{
  std::string test = "  u       65.45\t\t   36.12\t     78.25  0.00";
  std::istringstream strm(test);
  std::string word;
  std::vector<std::string> words;
  while (strm >> word)
      words.push_back(word);
  for (auto& v : words)
    std::cout << v << "|\n";
}

输出:

u|
65.45|
36.12|
78.25|
0.00|

现场示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Shell脚本:删除字符串中的所有空格字符

来自分类Dev

如何替换字符串中的所有空格

来自分类Dev

从JavaScript字符串中删除空格,但不是所有空格

来自分类Dev

删除字符串中的所有空格

来自分类Dev

从Ruby中的字符串中删除所有空格

来自分类Dev

如何找到所有特殊字符并将它们打印在给定的字符串中?

来自分类Dev

使用jQuery删除字符串中的所有空格

来自分类Dev

如何将字符串转换为Bash中的所有空格?

来自分类Dev

如何删除字符串中的所有空格和\ n \ r?

来自分类Dev

Python:删除字符串中的所有空格和'\ n'

来自分类Dev

如何使用javascript替换字符串中的字符或单词,即使它们之间没有空格?

来自分类Dev

如何从字符串变量cardLabel中删除{Group}和{Desc}以外的所有内容,并在JavaScript中在它们之间添加空格?

来自分类Dev

Javascript正则表达式-删除字符串中除单词之间的所有空格

来自分类Dev

字符串中是否有任何函数可以帮助删除字符串中的所有空格?

来自分类Dev

如何删除列表中字符串中的所有空格

来自分类Dev

Shell脚本:删除字符串中的所有空格字符

来自分类Dev

如何删除字符串中的所有空格?

来自分类Dev

有没有办法删除字符串中的所有空格?javascript

来自分类Dev

如何使用c#ForEach方法打印带有空格的数组内容并将其存储在字符串变量中?

来自分类Dev

在SQL中获取两个字符之间的子字符串,并删除所有空格

来自分类Dev

如何从字符串中删除所有空格?

来自分类Dev

字符串之间有空格

来自分类Dev

从Rails的字符串中删除所有空格字符

来自分类Dev

如何在Python中打印变量和字符串之间没有空格

来自分类Dev

如何匹配以开头的字符串中的所有空格

来自分类Dev

我如何在python2.7中按字符打印字符串而在它们之间没有空格?

来自分类Dev

如何删除回车符和空格并将字符串正确存储在数组中?

来自分类Dev

如何删除字符串开头的所有空格?

来自分类Dev

如何从字符串中删除所有空格和回车符?

Related 相关文章

  1. 1

    Shell脚本:删除字符串中的所有空格字符

  2. 2

    如何替换字符串中的所有空格

  3. 3

    从JavaScript字符串中删除空格,但不是所有空格

  4. 4

    删除字符串中的所有空格

  5. 5

    从Ruby中的字符串中删除所有空格

  6. 6

    如何找到所有特殊字符并将它们打印在给定的字符串中?

  7. 7

    使用jQuery删除字符串中的所有空格

  8. 8

    如何将字符串转换为Bash中的所有空格?

  9. 9

    如何删除字符串中的所有空格和\ n \ r?

  10. 10

    Python:删除字符串中的所有空格和'\ n'

  11. 11

    如何使用javascript替换字符串中的字符或单词,即使它们之间没有空格?

  12. 12

    如何从字符串变量cardLabel中删除{Group}和{Desc}以外的所有内容,并在JavaScript中在它们之间添加空格?

  13. 13

    Javascript正则表达式-删除字符串中除单词之间的所有空格

  14. 14

    字符串中是否有任何函数可以帮助删除字符串中的所有空格?

  15. 15

    如何删除列表中字符串中的所有空格

  16. 16

    Shell脚本:删除字符串中的所有空格字符

  17. 17

    如何删除字符串中的所有空格?

  18. 18

    有没有办法删除字符串中的所有空格?javascript

  19. 19

    如何使用c#ForEach方法打印带有空格的数组内容并将其存储在字符串变量中?

  20. 20

    在SQL中获取两个字符之间的子字符串,并删除所有空格

  21. 21

    如何从字符串中删除所有空格?

  22. 22

    字符串之间有空格

  23. 23

    从Rails的字符串中删除所有空格字符

  24. 24

    如何在Python中打印变量和字符串之间没有空格

  25. 25

    如何匹配以开头的字符串中的所有空格

  26. 26

    我如何在python2.7中按字符打印字符串而在它们之间没有空格?

  27. 27

    如何删除回车符和空格并将字符串正确存储在数组中?

  28. 28

    如何删除字符串开头的所有空格?

  29. 29

    如何从字符串中删除所有空格和回车符?

热门标签

归档