关于字符串输入问题

qq_28615467 2017-08-10 11:40:40
输入格式0X13,0X14,0X15。
用c或者c++都可以,昨晚的一道面试题,但是需要输入格式里面有逗号。这个怎么做到的?
...全文
223 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kakabulusi 2017-08-21
  • 打赏
  • 举报
回复
格式化读入 读入后拆解字符串 …… 很多方法吧
fussier 2017-08-10
  • 打赏
  • 举报
回复
scanf("%x,%x,%x", &a, &b, &c); ?
verphan 2017-08-10
  • 打赏
  • 举报
回复
整行读进来再拆分?
赵4老师 2017-08-10
  • 打赏
  • 举报
回复
不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
qq_28615467 2017-08-10
  • 打赏
  • 举报
回复
引用 1 楼 fussier 的回复:
scanf("%x,%x,%x", &a, &b, &c); ?
no,这个不就是正常输入吗?如果我要用4个16进制,不就不成立了吗?就是任意位数中间还有逗号,光用scanf就不行啊
qq_28615467 2017-08-10
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
仅供参考:
#include <stdio.h>
int main()
{
    int a,b,c,n,v,r,k;
    char buf[80];
    char *p;

    k=0;
    r=EOF;
    while (1) {
        if (EOF==r) {
            fgets(buf,80,stdin);
            p=buf;
        }
        while (1) {
            r=sscanf(p,"%i%n",&v,&n);
            if (1==r) {k++;break;}
            if (EOF==r) break;
            p++;
        }
        if (EOF==r) continue;
        p+=n;
        if (1==k) a=v;
        if (2==k) b=v;
        if (3==k) {
            c=v;
            break;
        }
    }
    printf("0x%02x,0x%02x,0x%02x\n",a,b,c);
    return 0;
}
以上实现输入3个整数,中间用任意字符间隔。
但是我想知道的是考题里的意思是,输入任意位字符都可以实现,我不可能按照位数换代码啊
赵4老师 2017-08-10
  • 打赏
  • 举报
回复
仅供参考:
#include <stdio.h>
int main()
{
    int a,b,c,n,v,r,k;
    char buf[80];
    char *p;

    k=0;
    r=EOF;
    while (1) {
        if (EOF==r) {
            fgets(buf,80,stdin);
            p=buf;
        }
        while (1) {
            r=sscanf(p,"%i%n",&v,&n);
            if (1==r) {k++;break;}
            if (EOF==r) break;
            p++;
        }
        if (EOF==r) continue;
        p+=n;
        if (1==k) a=v;
        if (2==k) b=v;
        if (3==k) {
            c=v;
            break;
        }
    }
    printf("0x%02x,0x%02x,0x%02x\n",a,b,c);
    return 0;
}
以上实现输入3个整数,中间用任意字符间隔。
weixin_38305120 2017-08-10
  • 打赏
  • 举报
回复
你是要输入这些字符串然后转换到对应int吗?

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧