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

C 語言中返回字符串函數的四種實現方法

C語言 閲讀(2.57W)

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;

}

同樣的,也要注意這個變量可存儲的最大