我要打印一个string
,该名称由另一个string
包含。
我的代码是这样的:
int i=1; //forexample
char end[9];
char start[25]="kerdesek[index]."; //my question(kerdes) array
if(i==1){
melyikkerdes='A';
strcpy(vege,"a_valasz"); //the exact answer(=valasz) i want to
} //print
else if(i==2){
melyikkerdes='B';
strcpy(vege,"b_valasz");
}
else if(i==3){
melyikkerdes='C';
strcpy(vege,"c_valasz");
}
else{
melyikkerdes='D';
strcpy(vege,"d_valasz");
}
strcat(end,start);
printf("%s",start"); //i want to print the value of the
//concatenated string here
我的程序打印:
kerdesek[index].a_valasz
您有什么解决方案吗?
答案 0 :(得分:0)
C无法将字符串的内容作为表达式进行评估。您也许可以使用指针来做您想做的事,
int i=1; //forexample
struct kerdesek_type *kelem = &kerdesek[index];
char *string = 0;
if(i==1){
melyikkerdes='A';
string = kelem->a_valasz;
}
else if(i==2){
melyikkerdes='B';
string = kelem->b_valasz;
}
else if(i==3){
melyikkerdes='C';
string = kelem->c_valasz;
}
else{
melyikkerdes='D';
string = kelem->d_valasz;
}
printf("%s",string);
答案 1 :(得分:0)
如果我对您的理解正确,就不想打印
kerdesek [index] .a_valasz
但是结构元素包含什么? 您不能在运行时将C代码构造为字符串,并且不能将它们作为程序的可执行部分。
这是您要做什么吗?
#include <stdio.h>
#define MAX_RECORDS 2
struct ker
{
char a_answer[50];
char b_answer[50];
};
int main()
{
struct ker questions[MAX_RECORDS] = {{"a_one", "b_one"},{"a_two", "b_two"}};
char *reply_string = "None";
int answer_number = 2; //Example
int question_number = 1; //Example
switch (answer_number){
case 1:
reply_string = questions[question_number].a_answer;
break;
case 2:
reply_string = questions[question_number].b_answer;
break;
default:
reply_string = "None";
break;
}
printf("%s\n", reply_string);
return 0;
}