簡體   English   中英

如何從 function 返回 2 個字符指針?

[英]How to return 2 char pointers from function?

我需要創建一個 function ,它接受一個pointer to part of a string的指針,並返回一個指向字符串中first word in the string開頭的指針和一個指向string after the word字符串的指針。

單詞的字符被定義為大寫和小寫字母,以及像'-'這樣的字符。

主要是,我不確定我們如何從 function 返回兩個指針。

我對指針也沒有最好的掌握,所以我正在尋找關於像這樣的 function 可能是什么樣子的任何提示。

第一種方法

一種方法是在 function arguments 中返回結果(通過取消引用他需要在調用語句中提供的被調用者指針)

void process_my_string(const char* userString, char** ptr_firstWord, char** ptr_stringAfter);

我們怎么稱呼它?

char* pfirst = NULL;
char* plast = NULL;
const char* str="hello c pointers";

process_my_string(str, &pfirst, &plast);

第二種方法

其中一個指針將在返回值中返回,另一個在 function 傳遞的參數中(如第一種方法):

char* process_my_string(const char* userString, char** ptr_stringAfter);

我們怎么稱呼它?

char* pfirst = NULL;
char* plast = NULL;
const char* str="hello c pointers";

pfirst = process_my_string(str, &plast);

第三種方法

返回structure或指針array中的指針(兩者)。 我選擇在下面的s_return結構中返回:

typedef struct{
   char* p_first;
   char* p_after;
} s_return;

現在 function 變為:

s_return process_my_string(const char* userString);

我們怎么稱呼它?

const char* str="hello c pointers";
s_return my_return = process_my_string(str);

/*access the pointers*/
printf("%s\n", my_return.p_first);
printf("%s\n", my_return.p_last);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM