请问一下c语言中能不能用sscanf来区分中文和英文
比如说:我要把一行中的hello单独拿出来,把你好拿单独出来,这样ok吗hello,你好good,好因为比如我要把0something中的数字和字符区分开来,我就可以这样...
比如说:我要把一行中的hello单独拿出来,把你好拿单独出来,这样ok吗
hello,你好
good,好
因为比如我要把
0 something中的数字和字符区分开来, 我就可以这样写:
sscanf(buffer, "%d %s", &index, name);
真的非常感谢! 展开
hello,你好
good,好
因为比如我要把
0 something中的数字和字符区分开来, 我就可以这样写:
sscanf(buffer, "%d %s", &index, name);
真的非常感谢! 展开
2个回答
展开全部
可以的。有个专业的东西叫“正则表达式”,C语言里也可以用类似的东西。
你可以到网上搜下“sscanf高级用法“,有详细的讲解。我在这里只给你举个例子。
#include <stdio.h>
int main(void)
{
char* pstr = "Hello你好123";
char strEn[20];
char strCn[20];
sscanf(pstr, "%[a-zA-Z]%[^a-zA-Z0-9]", strEn, strCn);
printf("%s %s\n", strEn, strCn);
return 0;
}
广州奥泰斯工业自动化控制设备有限公司_
2023-03-29 广告
2023-03-29 广告
日本OPTEX FA光电传感器产品已在中国大陆销售了近30年,产品的高性价比已被广大客户所认可。为更好的服务广大客户,日本株式会社(OPTEX FA)于2013年成立广州奥泰斯工业自动化控制设备有限公司,作为OPTEX FA中国区总部。日本...
点击进入详情页
本回答由广州奥泰斯工业自动化控制设备有限公司_提供
展开全部
行。但有好多细节要掌握好,比如sscanf(buffer, "%d %s", &index, name);中buffer里的串必须是第一个是整型数串,而后是空格(可以不至1个),再后是一个字符串。如果不是这样,读取就要出错。区分英文汉语也是可以的;不过没有区分开的必要啊,直接一个字符串“hello,你好”这样也是可行的。
追问
struct dict{
char English[ ];
char Chinese [ ];
}
struct dict info;
我想要把hello 放在 info->english 里面
把 你好 放在 info-> Chinese 里面
所以要读出来吧
多谢!
追答
好办。如果buffer[]="hello,你好",则
struct dict x;
sscanf(buffer,"%[^,],%[^\0]",x.English,x.Chinese);,这样一次就读进两个数组了。不过,dict中的[]空着不行,要声明足够的空间。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询