指针上的字符串scanf

时间:2015-04-23 20:00:33

标签: c arrays string pointers

我希望用户收到这些名字。之后,我想在屏幕上打印收到的名字。例如:

- 扫描:

roy
john
malw

- 打印:

roy
john
malw

代码:

#include <stdlib.h>
#include <stdio.h>

int main ()
{
    int i;
    char *aer[4];
    char *(*pter)[4] = &aer;

    for(i=0;i<4;i++)
        scanf(" %s",&(*pter)[i]); //read strings

    for(i=0;i<4;i++)
        printf("String %d : %s\n",i+1,(*pter)[i]); //write strings

    system ("pause");
    return 0;
}

2 个答案:

答案 0 :(得分:0)

$scope.somekey = someval可能不是正确的功能,请尝试使用scanf

strtok

另请注意,您忘记为要解析的令牌分配内存。在我的例子中,内存是为整行分配的,strtok返回指向其中子串的指针。

答案 1 :(得分:0)

实际上,也可以使用scanf:

#include <stdio.h>

int main () {
    char s[4][20+1];
    int i = 0, j = 0;
    while (i != 4 && scanf("%20s", s[i])) {
        i++;
    }
    while (j != i) {
        printf("%s\n", s[j]);
        j++;
    }
    return 0;
}

但是仍然必须分配内存,并且还要注意scanf应该被赋予最大长度。