社区
C语言
帖子详情
请教sscanf的用法,谢谢
freegoal
2003-06-02 11:05:35
我有这样的一个字符串,"typeid|engstr|gbstr|big5str|",其中包含了四个以 '|'隔开的子字符串,如何能否很方便的获取这四个字符串?,我用下面这个语句,可是不行
_stscanf(svOne, _T("%s|%s|%s|%s|"), svID, svEn, svGb, svB5);
请问如何做?
...全文
84
9
打赏
收藏
请教sscanf的用法,谢谢
我有这样的一个字符串,"typeid|engstr|gbstr|big5str|",其中包含了四个以 '|'隔开的子字符串,如何能否很方便的获取这四个字符串?,我用下面这个语句,可是不行 _stscanf(svOne, _T("%s|%s|%s|%s|"), svID, svEn, svGb, svB5); 请问如何做?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yzb1000
2003-06-06
打赏
举报
回复
大开眼界
howard_sz
2003-06-06
打赏
举报
回复
[^|] 表示不接收'|'字符,遇到'|’就会结束
[^|]| 表示不接收'|'字符,但遇到'|’不会结束
freegoal
2003-06-02
打赏
举报
回复
to howard_sz(frank):
非常感谢,你的方法果然可以。能否详细解释一下这些字符的意义?谢谢
howard_sz
2003-06-02
打赏
举报
回复
char string[] = "typeid|engstr|gbstr|big5str|";
sscanf(string,"%[^|]|%[^|]|%[^|]|%[^|]|s",str1,str2,str3,str4);
howard_sz
2003-06-02
打赏
举报
回复
char string[] = "typeid|engstr|gbstr|big5str|";
sscanf(string,"%[^|]|%[!|]|%[^|]|%[!|]|s",str1,str2,str3,str4);
zw741027
2003-06-02
打赏
举报
回复
都是字符串,没有办法通过%s|%s...实现拆分,自己写个split函数,将结果集拆到数组中去
char destgrp[10][10];
static int splitstr(char subchar, char *psStr, char *pdstr, int subsize)
{
char *ptmp = psStr, *ptmp1;
int substrlen, icount = 0;
while ((ptmp1 = strchr(ptmp, subchar)) != NULL)
{
substrlen = ptmp1 - ptmp;
memcpy((void *)&pdstr[subsize * icount]
, (const void *)ptmp
, (size_t)MIN(substrlen, subsize));
ptmp = ptmp1 + 1; /* add sizeof(char) */
icount += 1;
}
substrlen = strlen(ptmp);
memcpy((void *)&pdstr[subsize *icount], (const void *)ptmp
, (size_t)MIN(substrlen, subsize));
icount += 1;
return icount;
}
splitstr('|', 源串,destgrp, 10);
idontlikenickname
2003-06-02
打赏
举报
回复
sigh~~~怎么老是这类问题?
#include <string.h>
#include <stdio.h>
char string[] = "typeid|engstr|gbstr|big5str|";
char seps[] = "|";
char *token;
void main( void )
{
token = strtok( string, seps );
while( token != NULL )
{
printf( "%s\n", token );
token = strtok( NULL, seps );
}
}
typeid
engstr
gbstr
big5str
pzytony
2003-06-02
打赏
举报
回复
先用fgets()读一行下来。
逐个找"|"
freegoal
2003-06-02
打赏
举报
回复
help
s
scanf
用法
总结
参考博客地址:http://blog.chinaunix.net/uid-26284412-id-3189214.htmls
scanf
(recvbuf,”%*[^/]/%[^ ]s”,buf_rev); s
scanf
(buf, “GET /%[^ ]”, buf_rev); 这个是在一个webserver.c里面的例子,通过s
scanf
()语句可以找到和它前面相匹配的语句然后打印出后面需要的
s
scanf
常见的
用法
详解
常见
用法
:1,取指定长度字符串s
scanf
("zhoue3456 ", "%4s", str); printf("str=%s\n", str); //str="zhou";2, 取到指定字符为止的字符串,取遇到a为止字符串 s
scanf
("zhou456ahedf", "%[^a ]", str); printf(&qu
s
scanf
用法
s
scanf
用法
收藏 名称: s
scanf
() - 从一个字符串中读进与指定格式相符的数据. 函数原型: Int s
scanf
(string str, string fmt, mixed var1, mixed var2 ... ); int
scanf
(
s
scanf
,s
scanf
_s及其相关
用法
#include 定义函数 int s
scanf
(const char *str,const char * format,........); 函数说明 s
scanf
()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考
scanf
()。转换后的结果存于对应的参数内。 返回值 成功则返回参数数目,失败则返回-1,错误原因存于errno中。 返回0表示失
s
scanf
和sprintf
用法
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章