我是C的初學者, 我想寫一個函數來返回一個字符串。 我知道在C中我們沒有字符串數據類型。而不是這些我嘗試使用一個字符數組,但這不是我的解決方案。c中的字符串數據類型
char[] my_function(int x){
if(x>0)
return 'greaterThanZero';
else
return 'smallerOrEqualOfZero';
}
請幫幫我。
我是C的初學者, 我想寫一個函數來返回一個字符串。 我知道在C中我們沒有字符串數據類型。而不是這些我嘗試使用一個字符數組,但這不是我的解決方案。c中的字符串數據類型
char[] my_function(int x){
if(x>0)
return 'greaterThanZero';
else
return 'smallerOrEqualOfZero';
}
請幫幫我。
void my_function(int x, char **ret){
if(x>0)
*ret= "greaterThanZero";
else
*ret= "smallerOrEqualOfZero";
}
並在主
int main() {
char *string;
my_function(1, &string);
printf("%s",string);
}
另一種方式:
void my_function(int x, char *T){
if(x>0)
strcpy(T,"greaterThanZero");
else
strcpy(T, "smallerOrEqualOfZero");
}
,並在主
int main() {
char string[100];
my_function(1, string);
printf("%s",string);
}
使用"
而不是'
('greaterThanZero'
應該"greaterThanZero"
)圍繞greaterThanZero & smallerOrEqualOfZero
使用雙引號。或者,您也可以返回單個字符(比如說g/s)&,然後在調用者函數中使用條件。
注意:「greaterThanZero」通常會進入const部分,而不是堆棧。因此從函數返回應該是安全的。
Downvoter,請讓我知道我的錯誤,讓我能改善... – anishsane
的返回類型必須const char *
和字符串文字必須包含在雙引號:
const char * my_function(int x)
{
if (x > 0)
return "greaterThanZero";
else
return "lessThanOrEqualToZero";
}
int main(void)
{
printf("my_function(1) = %s\n", my_function(1));
printf("my_function(0) = %s\n", my_function(0));
printf("my_function(-1) = %s\n", my_function(-1));
return 0;
}
注意的是單引號用於char
變量:
char c = 'X'; // single character - single quotes
char *s = "Hello world!"; // string - double quotes
請寫信給使用這些main()的代碼功能 – Ehsan
不客氣 – MOHAMED