當前位置:首頁 » 編程語言 » c語言返回字元串數組
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言返回字元串數組

發布時間: 2022-08-15 22:38:46

c語言怎麼返回字元串數組

1、在void
strcat()的strcat前添加*,表示返回char
指針。
2、strcat()應該返回str1,即
return
str1。str1是連接的結果,調用者有責任確保str1數組空間足夠大,以便在其尾部添加str2後,不會覆蓋其他數據空間。

㈡ c語言中函數返回值可以是數組、字元串和結構體嗎

//語法編碼規則的角度看
ANSIC語言標准,明確規定數組類型和函數類型不可以做為返回值。

解決這種返回值的方法是通過指針來間接返回,即使用數組指針和函數指針。這可以做為c語言引入指針的另一個理由。

結構體類型可以做為返回值,我猜測C語言設計者當時引入struct結構體的概念,目的是為了增加一種建立C語言新類型的機制,換句話說它希望通過struct建立的類型,像內置的int float類型一樣使用方便。

//從匯編角度來看
有兩種返回值方法,第一種是直接返回到寄存器的,第二種是類似於結構體返回值的那樣建立臨時存儲區的返回方式

比如int 返回值類型、指針返回值類型,在ia32平台上都是直接返回到eax寄存器不管是vc還是gcc,對於像float 類型的浮點返回值類型,在ia32平台,往往藉助於fpu浮點運算器部件中的寄存器存儲於棧中,第三類就是像struct結構體返回值,它需要建立臨時對象,對於c語言來說引入一個臨時內在區域是問題不大的,但是對於c++這個有時候是致命的。

我是菜鳥,希望能幫到你,觀樓主英俊瀟灑,風流倜儻,必當世豪傑,誠邀加入0x30網路貼吧,共商義舉,建不世之功!

㈢ C語言里怎麼讓函數的返回值為一個二維字元串數組

返回一個指針:

int **a(void)
{
static int c[5][5]={0};
return c;
}

㈣ C語言如何返回字元串

new 是動態分配(在堆上分配),你向系統要了 50 B 的內存,如
char* str=new char[50]; // 50 * 1B
堆上分配就是這情況,你不釋放(delete一下),它就認為你在用著;不會再給別人用
如果給你的你不用了,或是你把它給忘記了,那就算是內存泄露了、

當然,你程序退出的時候,系統會替你回收、不過這樣的習慣不好,你想,如果你寫了死循環(操作系統、伺服器程序等)、那裡面不斷滴在內存泄露,你就危險了、後來發現,不知不覺,內存怎麼就不夠用了,明明自己用的不多啊、、

修改一下:
char* fanhui()
{
static char str[100]; // 局部變數,靜態局部變數,它在第一次調用的時候分配,
cin >> str; // 函數返回了,str的空間還是存在的,也就是不會重復申請、
return str; // 而且,函數外面通過,指針也是可以訪問他們的、、
}


char* fanhui()
{
char str[100]; // 局部變數,默認動態局部變數,它在每一次調用的時候分配,
cin >> str; // 函數返回了,str的空間也就不存在了,他是在,棧,上分配的、
return str; // 函數外面通過,指針想訪問?、非法!!!人都不在了,你喊他幹嘛啊??
}

㈤ C語言系列之C語言如何返回字元串數組

C語言實現返回一個字元串數組,是沒有這種功能的,但是可以用指向數組的指針來實現:

解釋:

char **p 這個p就是指向數組的指針,它指向一個數組的起始地址.
想要引用裡面的數組時,直接使用p[i] 即可。

我們知道C語言裡面的各種數組,本質上都是指針,並且函數其實也是不能把數組當作參數的,實際上都是把數組的地址傳進去了,實際上就是指向數組地址的指針。

實現

這樣返回的P就是指向數組的指針了,實際上就是一個字元串數組

函數解釋:

函數返回一個字元串數組,實際上就是指向數組的指針,傳進去的是返回的數組的大小以及一個字元串數組,用來處理數據用。

㈥ C語言讀取文件如何返回一個數組

c語言沒有直接讀取返回數組的函數。
看你問題里文件內容格式是:一行一個字元串回車換行。
那麼,用fgets一次讀一行,你寫循環調用這個fgets函數把讀取的值放在數組里。
至於你說的數組長度寬度不定,在c里需用malloc動態申請內存。
方法1:用fseek和ftell獲取整個文件位元組數,然後用malloc申請一個整個文件大小的內存地址(二維數組在內存中就是一維)。然後在循環中每次讀取一行到這個地址並計算一行長度,利用指針移得到每行首地址,最後所有行指針組成二維數組(行數也是動態申請)
方法2:你定義一個比較大的字元數組,作為零時存儲變數,每次循環中讀取一行到這個數組,再用strlen計算字元串長度,再用malloc按照這個長度申請一組地址(一行),並利用strcpy轉移內容,最後組成二維數組。
方法3:直接用malloc申請很大的二維數組,循環讀取獲取內容後,strlen獲取每行實際內容的長度。最後用realloc根據實際寬度和行數修改數組大小。

㈦ c語言如何返回一個數組

只能返回一個數,數組不能返回,以數組為函數參數傳給形參時,由於是數組名傳遞(地址傳遞),實參和形參共用一段內存,對形參更改時實參的值也會改變,所以不需要返回值

㈧ c語言 return字元數組問題

#include<stdio.h>

char*pdNum(char*p,int i);

intmain(){

inti;

charr[10];

char*p;

p=r;

printf("請輸入你要查詢的成績: ");

scanf("%d",&i);

if(i>=0&&i<=100){//判斷是否為有效成績

printf("%s ",pdNum(p,i));}

else

printf("Error ");

return0;

}


char*pdNum(char*p,inti)

{

if(i>=85){

p="good";}

if(i<85&&i>=60){

p="General";}

if(i<60&&i>=0){

p="Bad";}

returnp;

}