if(condition)
{
std::string interface = string1;
}
else
{
std::string interface = string2;
}
有人可以告诉我这是否可以在C程序中使用。
答案 0 :(得分:1)
可以在C ++中使用,但在您的代码示例中,interface
仅存在于if-else
的每个块的有限范围内。如果要根据某些条件实例化字符串,可以使用条件运算符:
std::string interface = condition ? string1 : string2;
答案 1 :(得分:0)
首先,std :: string只能在C ++程序中使用。
其次,如果你像你那样声明,那么你有两个变量,其范围分别包含在then
的{{1}}部分和if
的{{1}}部分:
else
你应该做的是:
if
或者,正如@juanchopanza所说:
std :: string interface = condition? string1:string2;
答案 2 :(得分:0)
正如在这里所说的,它可能在C ++中而不是在C中,因为C没有类型std :: string。此外,您的示例没有任何意义,因为每个变量接口仅在相应的复合语句中存活,并且在if-else语句之外,它将无法访问。
在C中你应该使用字符数组和标准函数strcpy。例如
char interface[20];
if(condition)
{
strcpy( interface, string1 );
}
else
{
strcpy( interface, string2 );
}
前提是变量接口足够大以容纳字符数组string1或string2