當前位置:才華齋>計算機>C語言>

C語言實現返回字串函式的方法有哪些

C語言 閱讀(4.19K)

C語言中實現函式返回字串,首先要確定函式返回的字串地址的來源,一般分為四種方式。下面本站小編帶大家一起來看看詳細內容,希望對大家有所幫助!想了解更多相關資訊請持續關注我們應屆畢業生考試網!

C語言實現返回字串函式的方法有哪些

  前言

C語言返回字串函式共有四種方式,分別如下:

使用堆空間,返回申請的堆地址,注意釋放

函式引數傳遞指標,返回該指標

返回函式內定義的靜態變數(共享)

返回全域性變數

  下面來看看詳細的介紹

其實就是要返回一個有效的指標,尾部變數退出後就無效了。

使用分配的'記憶體,地址是有效

char *fun()

{

char* s = (char*)calloc(100, sizeof(char*) );

if (s)

strcpy ( s , "abc " );

return s;

}

但這種方式需要注意,必須由使用將將返回的地址free掉

將地址由入參傳入

char* fun(char*s)

{

if (s)

strcpy(s, "abc ");

return s;

}

  這種方式呼叫都要注意給s分配的大小是足夠。

可以這樣:

char* fun(char*s, int len)

{

if (s)

{

strncpy(s, "abc ", len-1);

s[len-1] = 0;

}

return s;

}

或才使用區域性靜態變數

char* fun()

{

static char s[100];

strcpy(s, "abc ");

return s;

}

  這種方式需要注意,不要修改返回的這個字串,由於是共享地址,對它的修改會反應到每個呼叫者的。可以這樣:

const char* fun()

{

static char s[100];

strcpy(s, "abc ");

return s;

}

  還有一種是使用全域性變數

char g_s[100];

char* fun()

{

strcpy(g_s, "abc ");

return s;

}