指针和字符

时间:2015-07-04 16:12:45

标签: c string pointers character

我的代码是用来获取分开的数字,事情是我已经看过很多教程,我不明白为什么它在我设置时运行:

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;
}

1 个答案:

答案 0 :(得分:3)

scanf("%s", ORDEM);

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

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

fgets(ORDEM, 100000, stdin);