糯米文學吧

位置:首頁 > 計算機 > C語言

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

C語言3.81K

在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;

}