c plus plus 处理字符串, ab|n2ur|p3pwd|X1X|Y2YY|Z3ZZZ

来源:百度知道 编辑:UC知道 时间:2024/06/02 10:47:13
ab|n2ur|p3pwd|X1X|Y2YY|Z3ZZZ
我想从中得到这些数据,比如:
| 是分割线, 它的后面有一位char是代表一个段的内容类别,
这里 n 是 用户名的意思, p 是 密码的意思.

flag = 'ab'
username_length = 2
username = "ur"
password_length = 3
password = "pwd"

//VC++ 6.0下调试通过。
#include <iostream>
using namespace std;

static char str[100]="ab|n2ur|p3pwd|X1X|Y2YY|Z3ZZZ";

void main()
{
char userInfo[20];
unsigned short id=0;
char* s=strtok(str, "|");
while (NULL!=s)
{
switch (s[0])
{
case 'a':
cout<<s<<endl;
break;
case 'n':
cout<<"username_length = "<<s[1]<<endl;
id= strlen(s)-2;
memcpy(userInfo, s+2, id);
userInfo[id]='\0';
cout<<"username = "<<userInfo<<endl;
break;
case 'p':
cout<<"password_length = "<<s[1]<<endl;
id= strlen(s)-2;
memcpy(userInfo, s+2, id);
userInfo[id]='\0';
cout<<"password = "<<userInfo<<endl;
break;
de