程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C言語完成前往字符串函數的四種辦法

C言語完成前往字符串函數的四種辦法

編輯:關於C++

C言語完成前往字符串函數的四種辦法。本站提示廣大學習愛好者:(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; 
} 

異樣的,也要留意這個變量可存儲的最大空間。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家學習或許運用C言語能有所協助,假如有疑問大家可以留言交流。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved