考虑以下包含两个不同字符串的情况:
在第二个例子中,
第一个例子运行良好,我能够将每个属性存储在变量中。然而,在第二个例子中,我遇到了麻烦:
当进入变量
有没有可能仅按分隔符拆分字符串一次?
Row1: MyID-MyName-MyAddress-MyNumber-MyNumber2-MyAlias
Row2: MyID-MyName-MyAddress-MyNumber--MyAlias
在第二个例子中,
MyNumber2
的值缺失。我需要使用strtok()
来提取每个属性。到目前为止,这是我的代码:MyID = strtok (str, "-"); //where 'str' is the full string
MyName = strtok (NULL, "-");
MyAddress = strtok (NULL, "-");
MyNumber = strtok (NULL, "-");
MyNumber2 = strtok (NULL, "-");
MyAlias = strtok (NULL, "-");
第一个例子运行良好,我能够将每个属性存储在变量中。然而,在第二个例子中,我遇到了麻烦:
当进入变量
MyNumber2
时,strtok()
不会返回空字符串(我希望如此)。相反,它会读取字符串直到第一个与分隔符"-"
不匹配的字符,从而忽略了字符串中空值的存在。有没有可能仅按分隔符拆分字符串一次?
MyNumber
的值缺失”--您是不是指“MyNumber2
的值缺失”? - Spikatrixstrsep
替代strtok
。 - BLUEPIXY