我想撰寫一個函式來過濾用戶的輸入,然后將過濾后的字串回傳給呼叫它的函式。
在我的示例中,如果不創建全域變數,這可能嗎?
#include <stdio.h>
char input[10]; //global variable is meh!
char* input_function() {
scanf("%s", input);
return input;
}
int main(void) {
printf("%s", input_function());
}
uj5u.com熱心網友回復:
在main()函式中創建一個字符指標,然后將其作為引數傳遞給input_function().
#include <stdio.h>
char* input_function(char* input) {
scanf("%s", input);
return input;
}
int main(void)
{
char input[10]; // Need to allocate space
printf("%s", input_function(input));
}
uj5u.com熱心網友回復:
在我的示例中,如果不創建全域變數,這可能嗎?
正如另一個答案所示,是的,當然有可能。
但是,在將毯子meh應用于全域變數時要小心,因為它們有其一席之地。
還要注意 C 允許模塊范圍,這意味著它可以在模塊內訪問,但不能從外部訪問。這些不應該被駁回。
所以這樣做是完全可以接受的:
#include <stdio.h>
static char input[10]; //module scope is OK
static char* input_function() {
scanf("%s", input);
return input;
}
int main(void) {
printf("%s", input_function());
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/393271.html
標籤:C
上一篇:在特殊檔案上讀寫各種資料型別
