比如说:我要把一行中的hello单独拿出来,把你好拿单独出来,这样ok吗
hello,你好
good,好
因为比如我要把
0 something中的数字和字符区分开来, 我就可以这样写:
sscanf(buffer, "%d %s", &index, name);
真的非常感谢!
请问一下c语言中能不能用sscanf来区分中文和英文
答案:2 悬赏:80 手机版
解决时间 2021-02-03 15:08
- 提问者网友:不爱我么
- 2021-02-03 05:44
最佳答案
- 五星知识达人网友:痴妹与他
- 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;
}
你可以到网上搜下“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里算是 字符串
因此不能用在这里
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯