我必须在字符串中用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。
答案 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';
}