请问如何从一个CString中读出数据?
请问如何从一个CString中读出数据?
例如:12.0;52.0;18.1;152.3;2.36;... 把每个数读出来保存
大侠指点下思路,小弟万分感谢!!
[解决办法]
刚刚写了一个:
CString strSrc = "52.0;18.1;152.3;2.36;12.5 ";
int index;
int Number =5;
CString strDest[5];
for (int i=0;i <Number-1;i++)
{
index = strSrc.Find( '; ');
strDest[i] = strSrc.Left(index);
strSrc.Delete(0,index+1);
MessageBox(strDest[i]);
}
strDest[Number-1] = strSrc.Left(index);
MessageBox(strDest[Number-1]);
[解决办法]
AfxExtractSubString
例:
CString str = "sdfsdf:sdfsdf:dsfgfg "
CString str1;
AfxExtractSubString(str1,str ,1, ': '); //按:分割取第一个:的值
[解决办法]
CSTRING 分割 DELETE是什么意思?
[解决办法]
CString strSrc = "52.0;18.1;152.3;2.36;12.5; ";
int i = 0;
int k = 0;
int index = 0;
CString strDest[5];
i = strSrc.Find( '; ', k);
while (i > = 0)
{
strDest[ index++ ] = strSrc.Mid (k, i-k);
k = i+1 ;
}
[解决办法]
int i=0;
strItemValue= "52.0;18.1;152.3;2.36;12.5; "
while (1)
{
AfxExtractSubString(strSub, strItemValue, i, '; ');
if (strSub == " ")
break;
i++;
}
AfxExtractSubString是mfc不公开的函数,这么简单的问题提问,LZ确实太懒胃
[解决办法]
做了一个string的呵呵。
std::string s = "5.15;3.6416;546.64545;623.4854;1465.79898;4656.464655;15484.14656 ";
int index = 0;
int off = 0;
while(index < s.length()) {
off = s.find( '; ', index);
if (off == -1) {
off = s.length();
}
sub = s.substr(index, off - index);
index = off + 1;
}
请大家看看有什么问题吗?
[解决办法]
// crt_strtok.c
/* 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 );
while( token != NULL )
{
/* While there are tokens in "string " */
printf( " %s\n ", token );
/* Get next token: */
token = strtok( NULL, seps );
}
}
Output
Tokens:
A
string
of
tokens
and
some
more
tokens
[解决办法]
用VC++赞成使用AfxExtractSubString,