所以我想将字符串设置为变量的值,这取决于其他一些测试用例。
const char* trial_1;
const char* trial_2;
const char* trial_3;
trial_1 = (pref_A != pref_B) ? "AB" : ((pref_A != pref_C)? "AC" : "AD" ) ;
trial_2 = (pref_B == pref_C) ? B : ((pref_B == pref_D) ? B : C);
trial_3 = (pref_B == pref_C) ? C : ((pref_B == pref_D) ? D : D);
printf("%s/%s/%s", &trial_1, &trial_2, &trial_3);
但是,问题是当我为我的代码运行测试用例时。我得到这个作为输出
trying "swimmeet 1 1 1 1"
d/P/@/
代替这个,
trying "swimmeet 1 1 1 1"
A/B/C/D
这表明我正在打印内存地址而不是地址内部的值(如果我错了,请纠正我)。
在 vscode 上运行它,我遇到了这个问题:
我不知道如何解决这个问题。
我尝试过不使用 const char * 并使用 char
您打印了字符串的地址,而不是它们的内容。 使用这条线:
printf("%s/%s/%s", trial_1, trial_2, trial_3);
请注意,当您使用
printf
设置时,%s
会查找从地址 Trial_1、Trial_2 和 Trial_3开始的以 NULL 结尾的字符串。