仅使用指针与另一个指针的选定部分

时间:2015-12-08 23:10:08

标签: c pointers

所以基本上我想从键盘读取一个文本,我知道它将具有以下格式:" 1 somewords",其中某些词是特定词。问题是我不知道如何从指针访问该特定部分。 例如,如果我运行

`printf("%s",myPointer);

我的输出只有1(缺少下一部分)。 在#34;之后,我尝试了以某种方式分配部分。 "到另一个指针,但它似乎没有用。

    scanf("%s",operatie); //if , for example operatie="1 dana"
    if(operatie[0]=='1') { 
        char *h=(operatie+1);   
    printf("%s",h); 
    } // h will be 0.

1 个答案:

答案 0 :(得分:4)

scanf("%s",operatie); //if , for example operatie="1 dana"

问题在于scanf()%s将停留在第一个空格处(阅读1后)。所以输入的其余部分根本就没有读过。

如果您想阅读一行,请使用fgets()。如果inputer缓冲区有足够的空间,fgets()也将读取换行符。所以你可能想删除它。

E.g。

   char operatie[256];

   if (fgets(operatie, sizeof operatie, stdin) == NULL) {
      /* handle error */ 
   }

   /* Remove the trailing newline, if present */
   char *p = strchr(operatie, '\n');
   if (p) *p = 0;