如何在分隔符

时间:2016-08-03 18:20:01

标签: c

这是我的代码。这将打开一个文本文件,并根据用户输入打印一行。我现在想要在所选分隔符(例如逗号)的外观上分隔所述行,以便我可以获得单独的信息(例如,重量,高度,眼睛颜色,名称,年龄等)。我将如何做到这一点?(编辑即时尝试使用文本输入来确定打印出的行和nada任何帮助?)

     #include<stdio.h>
#include <string.h>
#include <stdlib.h>
    int main()
    {
            const char delim[2] = ",";
            char *token;
            int j =0;
            char  hh[3];
            FILE *ptr_file;
            char buf[1000];
            ptr_file =fopen("input.txt","r");
            if (!ptr_file)
            return 1;
            char *pt[] = {
                "H","He","Li","Be","B","C","N","O","F","Ne","Na"

            };
    printf("what element do you want\n");
    scanf("%s", &hh);
    for(j=0; j<= 3; j++)
    {
        if(hh == pt[j])
      {
        fgets(buf,1000, ptr_file);
                token = strtok(buf, delim);
                while( token != NULL ) 
                {
                printf( "%s\n", token );
                token = strtok(NULL, delim);
                }

                break;
      }else     
        {
            fgets(buf,1000, ptr_file);
            continue;
        }
    }    
       fclose(ptr_file);
            return 0;
    }

1 个答案:

答案 0 :(得分:1)

如果您有句子:“体重,身高,眼睛颜色,姓名,年龄”,您可以使用

对字符串进行标记并用逗号(“,”)分隔。

char * strtok(char * str,const char * delim)函数如下。

char buf[1000] = "Weight,Height,Eye color,Name,Age";
const char delim[2] = ",";
char *token;

//This retrieves the first token
token = strtok(buf, delim);

while( token != NULL ) 
{
  printf( "%s\n", token );
  token = strtok(NULL, delim);
}

输出:
重量
身高
眼睛颜色
名称
年龄