【问题标题】:Pointer and Character指针和字符
【发布时间】:2015-07-04 16:12:45
【问题描述】:

我的代码应该得到分隔的数字,问题是我已经看过很多教程,但我不明白为什么设置时它会运行:

p = "123 23 32"
out>>
123
23
32
0
0

但是当我设置它等于字符数组时它只找到第一个数字,事件虽然我“走进”p指针:

#include<stdio.h>
int main()
{
    int N, i=0, NUMERO = 1, FINAL = 0;
    char ORDEM[100000], *p = ORDEM;

    scanf("%s", ORDEM);
    p = ORDEM;

    for(i = 0; i<5; i = i + 1)
    {
        printf("%d\n", atoi(p));
        while (*p != ' ') p++;
        if (*p == ' ') p++;
        if (*p == '\0') break;
    }
return 0;
}

【问题讨论】:

    标签: c string pointers character


    【解决方案1】:
    scanf("%s", ORDEM);
    

    scanf() 由空格字符分隔。因此,ORDEM 在您的测试用例中仅包含 "123"

    要阅读整行,您应该致电fgets()

    fgets(ORDEM, 100000, stdin);
    

    【讨论】:

    • 伙计,我很惭愧,我真的很努力地完成了这项工作,而解决方案就是这么简单。我不知道 scanf() 只能读取以空格字符分隔,对不起!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 2015-02-22
    • 2012-03-22
    • 2011-06-26
    相关资源
    最近更新 更多