如何分割(带)字符串并匹配每个元素? 我在Ubuntu上使用gcc版本4.6.3。
我的“伪代码”:
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
int main () {
char str[] = "foo,bar";
char * pch;
pch = strtok (str,",");
for (int i = 0; i < str.size(); ++i) {
if( pch[i] == "something" ) {
cout << pch[i] << "\r\n";
}
}
}
谢谢
答案 0 :(得分:-4)
例如
#include <iostream>
#include <cstring>
int main()
{
char str[] = "foo,something,bar";
char *p = std::strtok( str, "," );
while ( p )
{
if ( std::strcmp( p, "something" ) == 0 ) std::cout << p << std::endl;
p = std::strtok( NULL, "," );
}
return 0;
}
输出是:)
something
另一种方法是使用课程std::string
和std::istringstream
。例如
#include <iostream>
#include <sstream>
int main()
{
char str[] = "foo,something,bar";
std::istringstream is( str );
std::string word;
while ( std::getline( is, word, ',' ) )
{
if ( word == "something" ) std::cout << word << std::endl;
}
return 0;
}
输出与上面相同。
如果您需要存储单独的单词,则可以使用类std::vector<std::string>
来存储它们。