我在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 ?
}
答案 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");
}