1樓:開發經驗分享
c++的每個字串除儲存給定的字串行外都有乙個結束符'\0'(即ascii碼為0的空字元).
如字元常量'm'與字串常量"m",在記憶體中的儲存為:mm0
2樓:科舉網7號助教
是的。比如說
char c="hello";
等價於char c=;
3樓:今夜無醉眠
s[i].id == f[1].d
你這樣是比較這兩個字串的位址是否相同
c風格字串,也就是0結尾字串的比較要借助strcmp如果strcmp( s[i].id, f[1].d ) == 0則說明他們兩個相等
你那樣做是不行的
另外可以使用標準庫的string
#include string
std::string a = "123";
std::string b = "123";
if ( a == b ) // 這裡就可以直接用==來比較了,因為string過載了==,以比較兩個字串的內容是否相同
使用strcmp需要包含標頭檔案cstring或者string.h
4樓:龍天騎士
'\0 '是字串結束的標誌
5樓:匿名使用者
string類的字串的結尾是\0,
string是類,類哪有什麼結尾呢?
c++中string是否以\0表示字串結束?
6樓:匿名使用者
stl的string也是已'\0'作為字串結束標誌。
str="hello\0\0world!";
str的值是"hello\0"
7樓:匿名使用者
如果你cout << str;這樣輸出的結果確實為hello,後面的內容輸出不來,但是仍然存在的。你仍然可以通過str[6]這種方法得到。補充:
如果str是string則不是這樣,後面的東西就沒了,如果str是char*才會是這樣。
你說的stl中的string這種型別,它是做了封裝的,它相當於c++中的乙個類,就像你自己也可以寫個模擬如這樣:
class mystring
;//其它成員變數和函式
};但是在這個類裡面的data和c語言裡的指標仍然一樣的,比如你呼叫print函式時,它用cout輸出data,此時也要求data指向的字串必須以\0結尾,不然c++怎麼知道輸出多少個char
8樓:丨嗚呼哀哉
恩,幾乎所有的字串都是\0結束……就是這麼定的……
9樓:傳小奇
你說的這個方面是一樣的。
c++是又c語言發展而來,很多東西都很相似,你主要把他們的區別記一下,其它的都按照c語言來用
10樓:哥很牛叉
是的,不信你去試試。
c++中string類物件不使用空字元『\0』來標記字串結尾,那麼下面的**為什麼會在字串結尾結束?
11樓:類人界異
reference operator( size_type pos );
(1)const_reference operator( size_type pos ) const;
(2)返回到位於指定位置 pos 的字元的引用。不進行邊界檢查。若 pos > size() ,則行為未定義。
1) 若 pos == size() ,則行為未定義。
2) 若 pos == size() ,則返回到擁有值 chart() 的字元(空字元)的引用。
(c++11 前)
若 pos == size() ,則返回到擁有值 chart() 的字元(空字元)的引用。
對於第一(非 const 版本),若修改此字元為任何異於 chart() 的值,則行為未定義。(c+
c++字串結尾不是『\0』嗎?為什麼我測試輸出的是任意字元
12樓:
不存在你說的問題。'\0'就是ascii碼00000000,它是打不出來的。另:c++的char字串仍然是以'\0'結尾的,而string字串物件不是以'\0'結尾的。
c++ c字串不以'\0'結尾會出現的問題
13樓:匿名使用者
'\0'字串會一直讀取到有'\0'才會停止,所以你那2個沒見過的字元後面肯定有'\0'所以才停止了。
14樓:匿名使用者
會在dos介面輸出亂碼,其實就是說會無限地輸出直到你的陣列長度為止,就是一種陣列越界的問題。
15樓:匿名使用者
\0 是ascall碼的null吧
在c 裡的字串為什麼有兩種,c 中字串為什麼有兩種形式? c style 和 string 有什麼區別?
看到c style 和string的區別 在c 裡,7 string str1 hello 8 string str2 str1 9 char p str1 1 10 string str3 str1 11 printf p n str1.c str 0x8bbf02c 12 printf p n ...
用c語言怎麼判斷字串是否為空用C語言怎麼判斷乙個字串是否為空?
空格和字串為空的概念本來就不一樣,如樓上所說空格本來就代表一 專個字元屬,而空字串直接為 0 如果你要把空格的字串也定義為空字串的話就要加判斷 空格的ascii碼為32 你只需要再多加乙個遍歷判斷就ok int isempty 0 int length strlen 變數 int n 遍歷整個字串,...
c語言填空判斷輸入的字串是否是「回文」。若是回文,函式返回1否則函式返回
1 s n 1 2 p 3 return 0 4 gets a 或scanf s a c語言編寫函式,判斷乙個字串是否是回文。若是回文函式返回值為1,否則返回 先看bai是幾位數。du假設是zhi4位 inta,a1,a2,a3 輸入回文dao數 scanf d a a1 a 10 a2 a 10 ...