C 求解字串陣列和字串變數什麼區別,舉個例子區分下

2021-05-12 20:04:08 字數 6299 閱讀 9610

1樓:

using namespace std;

int main()

;char *pc="12345678";

cout << c << endl;

cout << pc << endl;

return 0;

}區別只是宣告的形式不同。用起來都一樣。

c++中。 字串和陣列有什麼區別呢?

2樓:閩文瑤雲藹

char

在系統上

用一個位元組表示

int在系統上有的是

4個位元組表示

。char

可以裝到int裡面

int裝不到char

裡面char就一位元組不夠。。。

當然還有很多其他區別

不過我不知道。。。

你找本c語言的基礎語法書看看

比如潭浩強的

c語言程式設計

。。。和c++

不衝突。。。。

3樓:乾經義渾海

對於字串,系統會在字串的末尾自動新增一個'\0'作為結束標誌,因此在程式中往往依靠檢測'\0'的位置來判定字串是否結束;

對於字元陣列,舉個例子,char

c[5]=;則系統會對陣列的最後的兩個元素自動填補空字元'\0'。

另外,如果給cout提供一個字元的地址,則它將從該字元開始列印,直到到'\0'為止,比如:char

a[5]=;

cout<

而你如果給出的是一個整形陣列的地址,輸出的則是該陣列的地址,如:int

a[5]=;cout<

最後,string是一個類來的,是c++為處理字串提供的一個類,比用字元陣列來處理要安全和方便

4樓:閭丘芷荷乙曾

有很大的區別,一個是字串陣列,一個是整形陣列,字串陣列可以進行解引用

c++中字元陣列和字串有什麼區別,使用的時候,還有儲存什麼的。

5樓:

字元陣列 char a[100]; 可以隨便你對元素賦值常量字串 char* a = 'abcde'; 不能隨便賦值動態分配字串

char *a = malloc(100);

strncpy(a, 'abcd', 0);

拷貝了4個字元

6樓:

唯一的區別就是字串末尾有一個'\0'作為結束標誌;字元陣列是沒有的.

簡單例子:

char ch1="hello";//該串有6個字元,5個可見字元,因為是串,所以末尾自動加上'\0';共六個

char ch2=;//這樣寫就成了陣列.是確確實實的5個字元

c++中字元陣列和字串類的區別

7樓:嵇傲袁珏

唯一的區別就是字串末尾有一個'\0'

面字元陣列是沒有的.

char

ch1="hello";//該串有6個字元,5個可見字元,因為是串,所以末尾自動加上'\0';共六個

char

ch2=;//這樣寫就成了陣列.是確確實實的5個字元

在c++中字元陣列和字串有什麼區別

8樓:匿名使用者

唯一的區別就是字串末尾有一個'\0'

面字元陣列是沒有的.

char ch1="hello";//該串有6個字元,5個可見字元,因為是串,所以末尾自動加上'\0';共六個

char ch2=;//這樣寫就成了陣列.是確確實實的5個字元

9樓:匿名使用者

字串都是以'\0'結尾,字元陣列只是單個字元的集合,只要在字元陣列某處加上'\0',也可轉換為字串

c++裡面vector有啥作用.和陣列區別在哪

10樓:匿名使用者

這個問題好,我來回答吧,當是複習下。vector是c++標準庫中定義的型別,是容器的一種。標準庫中容器有很多種,vector只是最基本的一種,vector型別和陣列型別的基本功能都是一樣的,就是儲存同類元素,但是他與陣列最大的區別就是可以實現動態儲存,舉個例子來說:

#include

#include

using namespace std;

int main

}return 0;

}樓主可以實驗一下,執行後隨便輸入些字元按回車,可以發現使用容器的妙處。其實要講清楚容器一兩句可不行,這段**只是一個小小的體驗。

另外補充兩點:

1、如果是用vc6.0進行編譯,會出現四個warning不管它,這是因為vc6.0對c++標準庫的支援不是很好

2、如果想多學點這方面的知識,建議閱讀c++ primer!

11樓:希聲和寡

有人問過,

最佳答案回答的挺不錯的

c++中,在一個陣列中獲得索引位置上的陣列元素值是什麼意思?能不能舉個例子和我解釋一下啊?謝謝了!

12樓:匿名使用者

int num[5] = ;

1的索引位置是0,

2是1,

3是2,

4是3,

5是4。

13樓:

就是陣列中元素的一個下標了

比如定義一個陣列a[9]=

那麼1,2,3,4,5,6,7,8,9的索引位置分別為0,1,2,3,4,5,6,7,8

14樓:新手小漠

索引位置 就是下標+1

c++ 如何定義字串陣列?

15樓:

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

例:如二維指標陣列的定義為:char *ptr_array[3]=,,};

擴充套件資料

字串陣列陣列元素表示方法:

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

例如,a[5],a[i+j],a[i++]都是合法的陣列元素。陣列元素通常也稱為下標變數。必須先定義陣列, 才能使用下標變數。

在c語言中只能逐個地使用下標變數, 而不能一次引用整個陣列。

16樓:匿名使用者

#include

using namespace std;

int main()

;char **p;

p=name;

cout<

cout<<*p<

cout<<**p<

cout<<*(++p)<

17樓:颯爽櫻風

c++里加上標頭檔案string.h

就可以直接用string str[10];這樣定義10個字串了定義時就可以賦值了。

如:string str[3]=;

你可以嘗試用cout<

18樓:金牛多弗朗明哥

方法1, 使用指標陣列:

#include

#include

#include

int main()

;int i=0;

while(strcmp(test[i], " ") != 0)

puts(test[i++]);

system( "pause ");

return 0;

}這個方法比較簡單, 但是問題是這樣的話,字串是常量,無法修改。當然這個問題也可以解決, 比如使用陣列賦值, 然後將 char 陣列首地址賦值給某一個指標即可。

方法2,使用2維陣列:

#include

#include

#include

int main()

;int i=0;

while(strcmp(test[i], " ") != 0)

puts(test[i++]);

system( "pause ");

return 0;

}這樣的話, 問題就是 空間的浪費!

19樓:愛在天空任飛翔

#include

#include

int main()

;for(int i = 0; i < 3; i ++){cout<

2.using namespace std;

千萬不要include string.h啦,string.h是c裡的字串庫,而string是c++庫,兩者沒有關係。這要弄明白連個庫有什麼不同,在網上搜搜就有。

c++裡的string是包含在std名稱空間裡的,所以要加上第二句。

20樓:

沒有字串陣列,只有字元陣列。

如以下的定義:

char c[6]=

char c[10]=;

char c=;

21樓:

c++ 怎麼還有 string ^ line這樣的語法?

標準c++,只有string。 s小寫

字串就是string,多個字串就是 vector

22樓:匿名使用者

就是二維陣列呀。如:

char s[10][100] = ;

23樓:匿名使用者

#include

int main()

; for (size_t i = 0; i < 2; ++i)printf("\n");

return 0;}

24樓:一千館原創短**

char username[n][4]=;

n是字串的個數

25樓:匿名使用者

字串陣列也能定義?

c++中的char定義的陣列和string的字串有什麼區別啊?

26樓:匿名使用者

明確一下:

你說的char是c++的內建型別char麼你說的string是標準庫中定義的類麼

如果是的話,它兩的區別有:

char陣列僅僅是儲存字串用的,c庫中有一系列操作字串的函式string是類,它包含一個可變長度的char陣列,封裝了常用的字串操作函式

它們之間可以轉化

27樓:匿名使用者

你問的陣列問題的話。不知道我的解釋你感覺怎麼樣。

在資料結構的課程裡。

char型的陣列是這樣的:

char[0] = 'a' char[1] = 'b'

而string[0] = "asdasdasd" string[1] = "asdasdasd"

這樣的解釋應該有助於你的理解

28樓:匿名使用者

對於char陣列

:#include

int main()

執行結果:

wwwqqq

a=www

b=qqq

a大於b

press any key to continue二者的區別在於:在char陣列中 輸入www回車,輸入qqq回車 即可完成輸入,程式執行

在string物件中 輸入www回車,輸入qqq回車,還要再輸入一個回車才能完成輸入

回車傳送資料到程式中,getline替換回車為'\0' ,寫字串難道不是這樣嗎?

為什麼後者還要多輸入一次回車呢??

29樓:匿名使用者

一個是 's'

一個是 "s"

就這點區別

30樓:圭帆召胤

都沒有說到重點,

char

是值型別!

string

是引用型別!這個可是本質的區別。

string可以被例項化,而char不可以。

C 求解字串陣列和字串變數什麼區別,舉個例子區分下

字串陣列是這樣定義的 char stringarray 3 而字串變數是這樣定義的 char s 10 它們的區別就是字串陣列可以儲存的是多個字串,典型的例子就是main函式的第二個引數,main函式的第二個引數就是一個字串陣列,它用來讓系統傳遞命令列引數,命令列程式的每一個引數之間都是用空格分割的...

c為字串陣列動態賦值的問題,C 為字串陣列動態賦值的問題

改用list吧.方法一是沒有new 沒有分配空間 方法二是在new的時候沒有指定大小,預設是0個元素,所以對其任意一個元素賦值都是越界.在c 中,陣列一般用來存放大小確定的資料.如果陣列大小未知,建議使用list lista new list a.add we messagebox.show a 0...

C語言字串陣列問題

c語言中,賦值 與 賦初值 又叫初始化 是不一樣的。在定義變數的同時賦值,叫賦初值,而定義後賦值就是普通的賦值了。你說的 不能用賦值語句將一字串常量或字元陣列直接賦值給一個字元陣列 這句話是說普通賦值的情況,也就是,不能定義一個字元陣列以後,再給他直接賦值。而 char s 12345 這個語句,是...