【发布时间】:2019-09-08 17:31:24
【问题描述】:
我想学习如何标记字符串,例如仅使用 <iostream> 的 strtok 函数。
我制作了一个删除空格的程序,但我认为它与 strtok 不同。
#include <iostream>
int main(){
int i = 0;
char s[100]="fix the car";
while(s[i] != '\0'){
if(s[i] == ' ')
s[i] = s[i-1];
else std::cout << s[i];
i++;
}
return 0;
}
prints: fixthecar
我想要整个strtok函数,不只是删除分隔符,听说要用指针,但不知道怎么写代码。
【问题讨论】:
-
你认为“
s[i] == s[i-1];”是做什么的,这行代码的目的是什么? -
应该是 =,我的错。应该去掉这个例子中的空间。或者如果 (s[i] == 'a') 它应该删除文本中的所有 a。
-
只使用
就很棘手。添加 你有很多字符串解析的机会。如果您希望自己编写 strtok,它是如何工作的is described here -
我知道这很棘手,但为此我只想使用 iostream。
-
如果字符串的第一个字符是空格怎么办,所以这就变成了
s[0]=s[-1],由于s[-1]不存在,当然这变成了未定义的行为。