问题:
最近要处理一些格式化的名称,格式如下
Familiy Name;Given Name;Additional Name;Name Prefix;Name Suffix
比如
Na;Po Lun;Jr.;Sr.;Esq.=====>实际上转化后为 Sr Na Po Lun Jr. Esq.
解决思路:
使用c库函数sscanf
int sscanf ( char * str, const char * format, ...);
网上有很多关于参数format的说明
经过尝试后,写出了下面简单的一段代码。
例子:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char fn[40] = {0};
char n[40] = {0};
char an[40] = {0};
char np[40] = {0};
char ns[40] = {0};
//char *name = "Na;Po Lun;Jr.;Sr.;Esq.";
char *name = "Na;Po Lun;Jr.;Sr.";
printf("name is %s/n", name);
sscanf(name, "%[^;];%[^;];%[^;];%[^;];%s", fn, n, an, np, ns);
printf("fn is %s/n", fn);
printf("n is %s/n", n);
printf("an is %s/n", an);
printf("np is %s/n", np);
printf("ns is %s/n", ns);
return 0;
}