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

C語言中返回字串函式的實現方法

C語言 閱讀(2.36W)

C語言中返回字串函式的實現方法你知道嗎?相信很多人都想了解,下面小編給大家介紹C語言中返回字串函式的`實現方法,歡迎閱讀!

C語言中返回字串函式的實現方法
  C語言中返回字串函式的實現方法

  有四種方式:

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

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

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

4。返回全域性變數

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

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

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;

}

同樣的,也要注意這個變數可儲存的最大空間。