在c ++中用字符串中的int替换空格

时间:2014-01-03 11:41:52

标签: c++ string replace

我必须在字符串中用0(整数0)替换空格。即将null终止此字符串中的每个单词。

char data[] = "r1 2 3 1.0kohm \n v1 1 0 5.5v";

当我这样做时:

int index = 0;
char token[50];
while (data[index] != '\0')
{
     token[index] = 0;
     index++;                 
}

但它取代了字符0而不是整数0。

2 个答案:

答案 0 :(得分:5)

  

我必须在字符串中用0(整数0)替换空格。

您可以使用std::replace算法轻松实现此目标:

std::string data = "r1 2 3 1.0kohm \n v1 1 0 5.5v";
std::replace(data.begin(), data.end(), ' ', '\0');

这也适用于普通的char数组:

char data[] = "r1 2 3 1.0kohm \n v1 1 0 5.5v";
std::replace(std::begin(data), std::end(data), ' ', '\0');

您需要为<algorithm>添加std::replace标题。

答案 1 :(得分:1)

最好使用@juanchopanza solution。但如果您不想使用STL,请将您的代码修改为:

const int len = strlen(data);
for (int i = 0; i < len; i++)
{
     if (data[i] == ' ')
          data[i] = '\0';            
}