CScan的SScanf无法正常工作?

时间:2014-08-28 15:06:53

标签: c++ mfc

我只是想通过char"来分割这个字符串:" 例如"第一个:最后一个" 所以一个字符串将有#34;第一个"而另一个将有"最后"

我确实喜欢此网址中的那个(sscanf string splitting not working) 但它并没有很好地与我合作,因为这两个字符串都有" last"值

 #define _CRT_SECURE_NO_WARNINGS  
 #include<iostream>
 #include <cstring>
 #include<tchar.h>
 #include<atlstr.h>
 using namespace std;


 void main()
{
    CString firstString(""), secondString(""), myString("first:last");

    sscanf(myString, "%[^:]:%s", firstString, secondString);

    printf("first: %s, last: %s", firstString, secondString);


    system("pause");

}

1 个答案:

答案 0 :(得分:1)

如上所述,不要混用C&#34;字符串&#34;和MFC CStrings。这是使用MFC CString的解决方案:

const int iColon = myString.Find(':');
if (iColon >= 0)
  {
  firstString = myString.Left(iColon);
  secondString = myString.Mid(iColon+1);
  }