永发信息网

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

答案:2  悬赏:80  手机版
解决时间 2021-02-03 15:08
  • 提问者网友:不爱我么
  • 2021-02-03 05:44
比如说:我要把一行中的hello单独拿出来,把你好拿单独出来,这样ok吗
hello,你好
good,好
因为比如我要把
0 something中的数字和字符区分开来, 我就可以这样写:
sscanf(buffer, "%d %s", &index, name);
真的非常感谢!
最佳答案
  • 五星知识达人网友:痴妹与他
  • 2021-02-03 06:41
可以的。有个专业的东西叫“正则表达式”,C语言里也可以用类似的东西。
你可以到网上搜下“sscanf高级用法“,有详细的讲解。我在这里只给你举个例子。
#include 
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;
}
全部回答
  • 1楼网友:七十二街
  • 2021-02-03 07:40
首先我要大言不惭说一句 在c/c++版块 折腾文件 字符串 我也是前十名的人物 然后我反驳一下 楼上 sscanf是可以用正则表达式的 接下来 我回答楼主 %[^,] 这样的结构 ^后面的是单字符 而不是中文的 逗号 是双字节的 在c里算是 字符串 因此不能用在这里
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯