使用C中的用户输入查询结构字段

时间:2017-04-05 17:58:21

标签: c

我在C中试验一个新东西,将用户输入字符串转换为结构字段,然后获取它的值。

int main(int argc, char *argv[])

请原谅我如果我的解释不清楚。

typedef struct {
  int ant;
  char str[50];

}Sample;

main ()
    {
       Sample a = { 1, "hi" };
       char query[50];
       scanf ("enter the query object inside the Sample structure %s", query );

       /* Search and print function */
       ex : now my query is for field ant 
       How do I convert the query string input "ant" to a.ant and print the value of ant ?
    }  

2 个答案:

答案 0 :(得分:1)

询问用户成员名称,然后选择性打印其内容。

检测/忽略前导/尾随空白区域,不区分大小写,EOF处理等的其他可能性很多,特别是考虑到帖子的细节不足。

   char query[50];
   puts("enter the query object inside the Sample structure");
   fgets(query, sizeof query, stdin);
   // trim potential \n
   query[strcspn(query, "\n")] = 0;

   if (strcmp(query, "ant")== 0) {
     printf("%d\n", a.amt);
   } else if (strcmp(query, "str")== 0) {
     printf("%s\n", a.str); 
   } else {
     puts("Field not present"); 
   }

答案 1 :(得分:0)

您是否只想搜索名称并在该名称上找到整数值(如果存在)。这就是你如何做到的。

#include<stdio.h>
#include<string.h>
typedef struct {
  int ant;
  char str[50];

}Sample;

 void  main ()
    {
       Sample a = { 1, "hi" };
       char query[50];
       printf("enter the query object inside the Sample structure: ");
       scanf ("%s", query );
        if(strcmp(a.str,query)==0) printf("Matched values is %d\n",a.ant);
        else printf("Not found\n");



}