首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

求教用VC瓜分字符串的

2012-10-14 
求教用VC分割字符串的比如我有一串字符“asd1sdf2ser3gad4”我要通过“ ”将它分割成“asd”“1”“sdf”“2”“ser”“3”

求教用VC分割字符串的
比如我有一串字符“asd1sdf2ser3gad4”
我要通过“ ”将它分割成“asd”“1”“sdf”“2”“ser”“3”“gad”“4”并存入数组
求具体的代码

[解决办法]
楼上正解,不过,用了CString就是用了mfc啊。。。

如果自己不想用mfc,可以自己写个CMyString类。。。。。
[解决办法]
简单的用strtok

C/C++ code
// crt_strtok.c// compile with: /W3// In this program, a loop uses strtok// to print all the tokens (separated by commas// or blanks) in the string named "string".//#include <string.h>#include <stdio.h>char string[] = "A string\tof ,,tokens\nand some  more tokens";char seps[]   = " ,\t\n";char *token;int main( void ){   printf( "Tokens:\n" );    // Establish string and get the first token:   token = strtok( string, seps ); // C4996   // Note: strtok is deprecated; consider using strtok_s instead   while( token != NULL )   {      // While there are tokens in "string"      printf( " %s\n", token );      // Get next token:       token = strtok( NULL, seps ); // C4996   }}
[解决办法]
CString::Tokenize()以空格作为分隔符~
[解决办法]
#include <vector>
using namespace std;
int GetSpaceNumber(const char *pchStr)
{
int count = 0;
if(pchStr != NULL)
{
char *p = (char*)pchStr;
while(*p!='\0')
{
if(*p==' ')
{
count++;
}
p++;
}
}
return count;
}
int main()
{
const char szBuffer[] = {"asd 1 sdf 2 ser 3 gad 4"};
int count = GetSpaceNumber(szBuffer);
vector<char*> vcRlt;
if(count != 0)
{
vcRlt.push_back(strtok((char*)szBuffer, " "));
for (int i = 0; i < count; i++)
{
vcRlt.push_back(strtok(NULL, " "));
}
}
for(vector<char*>::iterator iter=vcRlt.begin(); iter!=vcRlt.end(); ++iter)
{
printf("%s\n", *iter);
}

}

热点排行