當前位置:首頁 » 編程語言 » c語言字元串指針數組

c語言字元串指針數組

發布時間: 2022-11-27 13:16:59

c語言字元串數組指針的傳遞

簡單寫了一個,供參考
#include
<stdio.h>
#include
<string.h>
struct
data
{
int
n;
char
name[10];
};
//傳入一個字元串指針name,給結構體相應變數賦值
void
cp_str(
char
*name
,
int
n
)
{
struct
data
st;
strcpy(
st.name
,
name
);
st.n=n;
}
//輸入數據,完成字元串的錄入
void
input_str()
{
int
i=0;
for(i=0;i<10;i++)
{
scanf("%s"
,name
);
cp_str(
name
,
i
);
}
}
//主程序
int
main()
{
input_str();
return
0;
}

❷ C語言:如何將字元串數組賦值給一個字元串指針或數組

直接在一個字元串裡面按位賦值就可以了。像二樓說的一樣。
因為你原字元串肯定是大於等於新字元串的,所以定一個變數檢查原字元串的位置,定另一個變數檢查新字元串的位置。那麼第一個變數肯定是大於等於第二個變數的。這樣可以把值從第一個變數的地方賦值到第二個變數的位置即可。

❸ c語言字元串指針

數組是指一段連續的存儲空間,數組名是其開始的地方,string是指針變數,指向字元串數組,亦即是其首地址,printf("%s",string);輸出的是從首地址開始往後存儲空間內的東西,直至'\0'結束。

❹ c語言指針與字元數組

注意這個位置的標志。(p-2)是常量,不是變數。因為字元串在前面定義的常量。屏幕上的輸出h。並且在d與h之間有一個空白,因為前面輸出一個字元''。

❺ c語言中怎麼定義一個字元串數組指針

c語言中定義一個字元串數組指針可以這樣寫:


//Exampleprogram
#include<stdio.h>

intmain()
{
charstr[]="abc";
char*p=str;
printf("%s ",str);
printf("%s ",p);
return0;
}

❻ C語言中指針定義的字元串和數組定義的字元串的區別

C語言字元數組和字元串的區別,字元數組是一個存儲字元的數組,而字元串是一個用雙括弧括起來的以'\0'結束的字元序列,雖然字元串是存儲在字元數組中的,但是一定要注意字元串的結束標志是'\0'。

總的來說是沒有區別的,字元串就是以字元數組形式存儲的。可以把一個字元串看成是一個字元數組,可以按數組那樣操作。兩者沒有本質的區別,只是在不同的情況下有不同的叫法。

❼ C語言中,如何定義一個『指針數組』,這個『指針數組』專門用來存放『數組指針』。

指針數組定義int*p[n];

[]優先順序高,先與p結合成為一個數組,再由int*說明這是一個整型指針數組,它有n個指針類型的數組元素。這里執行p+1時,則p指向下一個數組元素,

這樣賦值是錯誤的:p=a;因為p是個不可知的表示,只存在p[0]、p[1]、p[2]...p[n-1],而且它們分別是指針變數可以用來存放變數地址。但可以這樣*p=a;這里*p表示指針數組第一個元素的值,a的首地址的值。

數組指針定義int(*p)[n];

()優先順序高,首先說明p是一個指針,指向一個整型的一維數組,這個一維數組的長度是n,也可以說是p的步長。也就是說執行p+1時,p要跨過n個整型數據的長度。

如要將二維數組賦給一指針,應這樣賦值:

int a[3][4];

int(*p)[4];//該語句是定義一個數組指針,指向含4個元素的一維數組。

p=a;//將該二維數組的首地址賦給p,也就是a[0]或&a[0][0]

p++;//該語句執行過後,也就是p=p+1;p跨過行a[0][]指向了行a[1][]

(7)c語言字元串指針數組擴展閱讀:

與數組指針關系

數組指針是指向數組首元素的地址的指針,其本質為指針(這個指針存放的是數組首地址的地址,相當於2級指針,這個指針不可移動);指針數組是數組元素為指針的數組,其本質為數組。

例如:*p[2]是指針數組,實質是一個數組,裡面的兩個元素都是指針,[]的優先順序比*的優先順序高,p先與[]結合,形成數組p[2],有兩個元素的數組,再與*結合,表示此數組是指針類型的,每個數組元素相當於一個指針變數

與二維數組對比

二維數組:如char string_1[10][10]只要定義了一個二維數組,無論賦不賦值,系統都會給他分配相應空間,而且該空間一定是連續的。其每個元素表示一個字元。我們可以通過指定下標對其元素進行修改。

指針數組:如char*str_B[5]系統至少會分配5個連續的空間用來存儲5個元素,表示str_B是一個5個元素的數組,每個元素是一個指向字元型數據的一個指針。

如果我做這樣的定義:

char a[3][8]={"gain","much","strong"};

char*n[3]={"gain","much","strong"};

他們在內存的存儲方式分別如右圖所示,可見,系統給數組a分配了

3×8的空間,而給n分配的空間則取決於具體字元串的長度。

此外,系統分配給a的空間是連續的,而給n分配的空間則不一定連續。

由此可見,相比於比二維字元數組,指針數組有明顯的優點:一是指針數組中每個元素所指的字元串不必限制在相同的字元長度;二是訪問指針數組中的一個元素是用指針間接進行的,效率比下標方式要高。但是二維字元數組卻可以通過下標很方便的修改某一元素的值,而指針數組卻無法這么做。

舉例編輯

數組指針:

#include&lt;stdio.h&gt;

int main()

{

char c[][4]={"哥","哥","我","岸","上","走"};//UTF-8:一個漢字=3個位元組

char(*p)[4];

int i;p=c;//將指針定位於c[0]

for(i=0;i&lt;=5;i++)

{

printf("%s,",*(p+i));//或者將*(p+i)替換成*p++

}

printf(" ");

for(i=5;i&gt;=0;i--)

{

printf("%s,",*(p+i));//或者將*(p+i)替換成*--p

}

return 0;

}

指針數組:

#include&lt;stdio.h&gt;

int main()

{

int i;

char*pch[6]={"妹","妹","你","坐","船","頭"};

for(i=0;i&lt;6;i++){

printf("%s,",pch&lt;i&gt;);

}

printf(" ");

for(i=5;i&gt;=0;i--){

printf("%s ",pch&lt;i&gt;);

}

return 0;

}

❽ c語言定義字元串數組

C語言字元串數組中的每一個元素均為指針,即有諸形如「ptr_array[i]」的指針。由於數組元素均為指針,因此ptr_array[i]是指第i+1個元素的指針。

例:如二維指針數組的定義為:char *ptr_array[3]={{"asdx","qwer","fdsfaf"},{"44444","555","6666"},{"a78x","q3er","f2f"}};

(8)c語言字元串指針數組擴展閱讀

字元串數組數組元素表示方法:

數組元素的一般形式為:數組名[下標] 其中的下標只能為整型常量或整型表達式。如為小數時,C編譯將自動取整。

例如,a[5],a[i+j],a[i++]都是合法的數組元素。數組元素通常也稱為下標變數。必須先定義數組, 才能使用下標變數。在C語言中只能逐個地使用下標變數, 而不能一次引用整個數組。

❾ 請問在c語言中如何通過輸入字元串為字元指針數組賦值

首先確定是字元指針數組還是字元數組指針,前者是一個數組,數組每個元素都是一個字元指針,後者是一個指向字元數組的指針。
若是指向字元數組的指針,則很簡單,使用scanf("%s", str);函數獲取輸入的字元串,然後使用字元串拷貝函數strcpy(stc, dest);將獲取的字元串拷貝到指定地址的字元指針數組中,拷貝過程中注意檢查訪問數組是否越界,若越界,則需要在字元數組的最後一個元素賦值為結束符'\0'。

若是賦值 字元指針數組,那麼就是對數組中的某一個元素指向的字元數組進行拷貝賦值,其過程與前者相同。

❿ c語言 字元指針和字元數組的區別

首先第一點,非常重要的一點:指針和數組是不同的兩個類型!


我們從可以從C語言標准文檔中得知:

ISO/IEC 9899:1999 - programing language c

6.2.5 Types

20 .

說明了什麼是指針類型。


在了解了兩種類型的基礎上,我們了解數組和指針的區別:

數組是一組相同類型對象的集合,指針是對一個對象的引用。


它們在使用中表現出了一定的相同點,但不同點也是很多的:

1,數組直接儲存對象,指針則是指向一個對象。

2,數組名不能被賦值,指針變數能。

3,sizeof一個數組,得到數組的長度(位元組單位),sizeof一個指針,相當於sizeof(void*)。(注意,不同目標平台指針長度可能不同,所以sizeof(void*)是最准確的回答)

4,(可能是考試內容,對於正確性就呵呵)指針是間接訪問,數組是直接訪問。


如果你對C語言有深入學習的想法,務必去了解一下C語言的ISO標准。

熱點內容
iptables限制ip訪問 發布:2025-01-17 21:38:01 瀏覽:174
易拉罐壓縮機 發布:2025-01-17 21:25:35 瀏覽:924
在c語言是什麼意思啊 發布:2025-01-17 21:21:02 瀏覽:516
re0腳本 發布:2025-01-17 21:13:34 瀏覽:305
甜蜜家園密碼箱有什麼用 發布:2025-01-17 21:07:28 瀏覽:48
有教少兒編程 發布:2025-01-17 20:55:37 瀏覽:37
直播背腳本 發布:2025-01-17 20:50:18 瀏覽:410
ftp移動文件的mv命令 發布:2025-01-17 20:45:53 瀏覽:405
電腦上啥是伺服器 發布:2025-01-17 20:40:48 瀏覽:353
安卓手機怎麼連大眾車載 發布:2025-01-17 20:20:53 瀏覽:241