请问一下c语言中能不能用sscanf来区分中文和英文

比如说:我要把一行中的hello单独拿出来,把你好拿单独出来,这样ok吗hello,你好good,好因为比如我要把0something中的数字和字符区分开来,我就可以这样... 比如说:我要把一行中的hello单独拿出来,把你好拿单独出来,这样ok吗
hello,你好
good,好
因为比如我要把
0 something中的数字和字符区分开来, 我就可以这样写:
sscanf(buffer, "%d %s", &index, name);
真的非常感谢!
展开
 我来答
帐号已注销
2014-12-07 · TA获得超过3000个赞
知道大有可为答主
回答量:1338
采纳率:75%
帮助的人:1304万
展开全部

可以的。有个专业的东西叫“正则表达式”,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;
}
追问

非常谢谢你的帮助,你的代码是正确的,然后我要把它分配到structure里面去不行了

追答
你的sort是结构体类型名,而不是指针变量,这样当然不行
广州奥泰斯工业自动化控制设备有限公司_
2023-03-29 广告
日本OPTEX FA光电传感器产品已在中国大陆销售了近30年,产品的高性价比已被广大客户所认可。为更好的服务广大客户,日本株式会社(OPTEX FA)于2013年成立广州奥泰斯工业自动化控制设备有限公司,作为OPTEX FA中国区总部。日本... 点击进入详情页
本回答由广州奥泰斯工业自动化控制设备有限公司_提供
White_MouseYBZ
2014-12-07 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6700万
展开全部
行。但有好多细节要掌握好,比如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中的[]空着不行,要声明足够的空间。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式