首先你是想把字符串number當做返回值返回,這個想法是可以的,但是你需要了解幾個知識:
創新互聯專注于石拐網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供石拐營銷型網站建設,石拐網站制作、石拐網頁設計、石拐網站官網定制、微信小程序服務,打造石拐網絡公司原創品牌,更為您提供石拐網站排名全網營銷落地服務。
1. 局部變量占用的空間在函數返回之后就銷毀了,你如果想返回字符串指針number,需要先malloc動態申請內存,這樣number的空間就不會被銷毀。
2. 你的函數返回值和函數定義不匹配,定義中是char,而number是char*類型,所以你如果想動態申請內存,然后返回指針,就把函數定義改為char*。
3. 主函數中%c是打印字符,如果打印字符串是%s。
還有一個辦法是把number字符串指針作為函數參數傳入,在主函數中定義一個number字符串,調用這個函數并傳入number,就可以對number字符串修改了,這個辦法無需顯式的返回值。
首先要明白一點兒,C語言中字符串也是按一個一個字符存在""字符數組""中的哦! 用個數組作為隊列來存放
例如:int a[100] 將這個數組用在你要接收字符的函數里,將接收的字符按i遞增存放在a[]里
接收時用個for(i=0;i++;i=100)
{
a[i]=接收字符
}
這樣a[0]里裝的是第一個接收字符,a[1]是第二個,依次類推,字符串就被接收到a[]里了
輸出時同理再用個for循環就可以了,例如
for(i=0;i++;i=100)
{
printf a[i]
}
當然要返回的字符串若是要用在其它的函數里也可以再定義個變量例如temp
可以temp=a[i]反正整個字符串都被保存在了數組a[]里,想怎么用可以了!
以上只是算法,具體代碼還得根據自己需要多動手訓練哦!
別聽 樓上 的 瞎說, 也 別 百度 了, 都是 錯 的, 我 告訴 你 正確 答案
函數 中 的 字符 串 在 函數 結束 的 時候 會 自動 被 釋放 掉, 所以 即使 返回 char* 指向 的
也 就是 原 函數 字符串 的 地址, 訪問 的 是 一個 系統 沒有 分配 給 程序 的 內存, 雖然 編譯器 不會 報錯, 但 語法 絕對 是 錯誤 的,而且 你 不一定 能 得到 一個 正確 的 結果
三種 解決 方法:
1, struct ret { char a[100]; }; 返回 一個 結構, 結構里面 包含 字符串
2, char* ret = (char *)malloc(100 * sizeof (char)); 在 函數 里 開 一個 動態 的 字符串, 這個 可以 返回, 不過 動態 內存 需要 手動 free 掉
3, 這個 不是 c語言 了, 調用 c++ 里面 的 string 類型, 也是 最簡單 的 辦法, 省心, 安全
要返回字符串 需要返回char*類型
需要注意的是 返回的字符串 不能是該函數的局部變量,否則會導致出錯
可以是參數字符串,全局變量,靜態局部變量,或者動態分配的內存
比如
char?*my_str_cpy(char?*d,?char?*s)
{
char?*p=d;
while(*p++=*s++);
return?d;//返回參數字符串。?
}
文章題目:字符串返回主函數c語言 字符串返回主函數c語言是什么
網頁URL:http://m.kartarina.com/article22/hgsccc.html
成都網站建設公司_創新互聯,為您提供外貿建站、響應式網站、品牌網站制作、移動網站建設、Google、定制開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯