C++如何用strtok函数分割一个字符串并把子串存储到string数据类型变量中?如果用该函数难以实现,是否还有其他函数可实现该功能?
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
char *p;
string s = "192.168.0.1";
string str[10];
int count = 0;
p = strtok((char *)s.data(), ".");
if(p) {
str[count].append(p);
count++;
while((p = strtok(NULL, "."))) {
str[count].append(p);
count++;
}
}
for(int i=0; i<count; i++) {
cout << str[i] << endl;
}
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: instring H = “Hello”;
instring I = “i’m Exp”;
cout<< H <<endl;
cout<< I <<endl;
此时会输出
Hello
i’m Exp
但当我们去掉第一行最后的<<endl,此时会变成
Helloi’m Exp
此时可以在第一行的字符串中增加换行符\n来达到同样的效果
instring H = “Hello\n”;
cout<< H;
cout<< I <<endl;
此时会输出
Hello
i’m Exp
小结:字符串类型在输出时换行符\n不能直接放在后面,而应该放在字符串的后面,即将instring H = “Hello”;修改为instring H = “Hello\n”;