1樓:匿名使用者
這迴圈需要執行4次,對應的字元就是0001,也就是說這個sc需要5個空間,加一個'\0'.
for(i=0;i
2.你這個程式每次執行的結果可能是不確定的,因為你沒有初始化sc陣列,printf以字串的形式輸出,他是遇到'\0',字元才結束的,所以為了保證程式的結果是一致的,建議初始化陣列。
sc[5]=;這樣就可以保證正確的輸出了。
3.至於你說的那些情況都是巧合,與棧上存在的記憶體值有關。
2樓:芝士晶片
建立陣列後要記得初始化 char sc[5]=;
c語言中,字串是什麼?
3樓:良慶慕容思博
位操作運算都只能是整形或字元型,字元型實際是單位元組整形。
包括以下幾個操作符:
按位與&,按位或。,按位異或。,左移<<,右移》
另外還有一個取餘操作:%
a%b的意思是,a除以b,取餘數。
這個是c語言的硬性規定,位操作都是正數按照二進位制進行表達的時候才有的概念;而取餘操作是整數相除得餘數,餘數必須也是正數。
一 ·下面列舉了c語言一些常見的領域(包括但不限於)
1)應用軟體;
2)對效能要求嚴格的領域,一般對效能有嚴格要求的地方都是用c語言編寫的,比如網路程式的底層和網路伺服器端底層、地圖查詢等;
3)系統軟體和圖形處理,c語言具有很強的繪圖能力和可移植性,並且具備很強的資料處理能力,可以用來編寫系統軟體、製作動畫、繪製二維圖形和三維圖形等;
4)數字計算,相對於其他程式語言,c語言是數字計算能力超強的高階語言;
5)嵌入式裝置開發;
6)遊戲軟體開發;
二。·執行時:
1,不是字串型別的轉換為字串,tostring();
進位制的時候可以進行傳參,其他時候不可以,undeinfed和null
無法返回。2,前置運算子。++或者。
是先運算再賦值,後置運算子。
或者--是先賦值再運算。
例如:varname
varname
varage
name++;
varage
name;alert(name);
這個值是101;
alert(name);
這個值是。alert(age);
這個值是100;
alert(age);
這個值是101;
3,在運算中,布林值。
false這個值是0,true是。
比較運算中,如果兩個一個是。
數值,一個是數字字串,那麼會把字串轉成數值。比較。
c語言字串是什麼意思?
4樓:親愛者
c語言中,char* 表示字元指標型別,當其指向一個字串的第一個元素時,就可以表示這個字串。
c語言廣泛應用於底層開發,c語言能以簡易的方式編譯、處理低階儲存器。c語言是僅產生少量的機器語言以及不需要任何執行環境支援便能執行的高效率程式設計語言。
c語言中什麼是字元,什麼是字串啊,謝謝
5樓:網友
c語言中單引號的是字元,雙引號的是字串。
1、字元指類字形單位或符號,包括字母、數字、運算子號、標點符號和其他符號,以及一些功能性符號。字元在計算機記憶體放,應規定相應的代表字元的二進位制**。**的選用要與有關外圍裝置的規格取得一致。
2、字串主要用於程式設計,概念說明、函式解釋、用法詳述見正文,這裡補充一點:字串在儲存上類似字元陣列,所以它每一位的單個元素都是可以提取的。
它是程式語言中表示文字的資料型別。在程式設計中,字串(string)為符號或數值的一個連續序列,如符號串(一串字元)或二進位制數字串(一串二進位制數字)。
6樓:笑笑
加了' '符號的字元,例如'c'.'3'
在c語言中, 由零個或多個字元組成且通過雙引號括起來的有限序列就叫字串。
例如:"hello world", 我愛中國", a", 123456"等等。
另外字串在記憶體中是由字元型陣列來儲存的。且在儲存的時候多加'\0'表示字串已經結束。
例如:char string[12] =hello wolrd";
注意,字串是以'\0'結尾的,所以儲存的陣列大小至少是字串長度加1.
字元常量:在c語言中一個字元常量代表ascii字符集中的一個字元,在程式中用單引號把一個字元括起來作為字元常量。大小寫字母代表不同的字常量;單引號中的空格也是;字元常量只能包含一個字元;字元常量只能用但括號括起來。
下面是常用字元的sacii
a』--z' 97---122
a』--z' 65---90
字串常量:字串常量是用雙引號括起來的,在c語言中系統會在每個字串的最後自動加入一個'\0'作為字串的結束標誌。
區別:'z'是字元常量,佔一個位元組;"z"是字串常量,佔兩個位元組,其中一個放'\0'。
它們兩個的用法都明白了,區別就知道了。
7樓:匿名使用者
字元 就是 鍵盤上的單個符號, 像 a,b,c,d.. 1,2,3,4,8...以及一些特殊的符號,字串 就是字元組成的串, 比如你名字的拼音就可以看做一個字串,它是有長度的。
8樓:煒通雨
最簡單的方法事,單引號的是字元,雙引號的是字串。
c++字元指標與字串的問題
9樓:
"int b=5,*a=&b;cout<"abcd"是一個字串常量,儲存在c++五大記憶體分割槽的常量區,是通過字元型指標來訪問的,a="abcd"意思是a指向字串"abcd",這裡「賦值」你從記憶體角度理解就是「指向」;
10樓:匿名使用者
abcd的地址賦給a了,那樣的賦值就是給的地址,而輸出的時候是要看輸出的要求,如果是輸出字元,就輸出字元了,
11樓:匿名使用者
為了避免lz混亂,我幫你重寫一次:
char *z;
z="abcd";
這段**,實際上是將字串abcd中a的地址賦給了指標z。
因為在執行z="abcd"的時候,程式首先在記憶體分配一個可供字串abcd存放的記憶體空間,再將指標z設定為指向這段記憶體空間的第一個地址,也就是存放字元a的地址。
至於樓主的第二個問題……
注意一下,第一個cout<*a是解除指標引用的意思,也就是代表存放在指標a內的記憶體地址中所存放的資料。
因此,*a=&b實際意思是把變數b的實際記憶體地址賦給了a所儲存的記憶體地址。cout的結果自然也就是b的記憶體地址了。
12樓:樂創客
第五十六集 指標指向字串。
13樓:匿名使用者
p1是個指標,是地址,+2就是該地址+2,該地址往後面2個的那個地址 strcat(p1+2,p2+1)的執行:p1=」abcd」,由於p1指向"abcd"的首地址'a'的地址,所以p1+2指向'c'的地址p2=」abcd」,由於p2指向"abcd"的首地址'a'的地址,所以p2+1指向'b'的地址所以strcat(p1+2,p2+1)也就是將"cd"和"bcd"進行字串拼接,得到"cdbcd"再執行strcpy(str+2,"cdbcd")str[50]=」xyz」,由於str指向"xyz"的首地址'x'的地址,所以str+2指向'z'的地址所以,strcpy(str+2,"cdbcd")也就是將"z"用"cdbcd"進行字串拷貝,拷貝後,原有的以'z'為起始的空間被"cdbcd"覆蓋,而前面的"xy"不受影響所以最後輸出"xycdbcd"
還有個問題。
1 程式不僅有語法錯誤,而且有嚴重的邏輯錯誤,不能執行。strcat(p1+2,p2+1); p1是指標常值,所指物件不能修改的。2 程式改為下面,才能執行。
#include #include void main()/執行結果是:xycdbcd
14樓:
strcat這是連線。
strcat(p1+2,p2+1) 就是從(p1+2位開始)連線 (p2+1位開始的)字串。
返回值是 p1+2 。
就是 cdbcd
strcpy(str+2,"cdbcd") 這是複製 。從str+2開始複製 ,結果就是 xycdbcd
15樓:冰血無雙
p1 p2 str 記錄的都是字串的首地址strcat拼接字串,p1位置是『a』,+2,後移2個 到'c' 得到cdp2位置是『a』,+1,後移1個 到'b' 得到bcd拼接為 cdbcd
strcpy複製字串。
str位置是'x' +2 後移2個 到『z』位置從『z』位置開始複製,cdbcd就替換了「xyz」 從z以後的所有所有就得 xycdbcd
16樓:匿名使用者
char *p1="abcd", p2="abcd", str[50]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));將p2+1連線到p1+2後面,再拷貝到str+2裡面。
printf("%s",str);
p1+2 為cd
p2+1 為bcd
strcat(p1+2,p2+1) 為 cdbcdstr+2 為z
strcpy(str+2,strcat(p1+2,p2+1))/為xycdbcd 此處z被覆蓋了。
c語言簡單的字串、字元處理問題求助
17樓:匿名使用者
第一題:簡單點的做法是申請個足夠大的char陣列。比如假定最多1000種字串,每串最大長度為20,就申請word[1000][20],以及一個num[1000],一個字串個數wordnum,初始化置為0。
然後每讀到一個字串就d到word中檢測有沒有重複的,有的話就給對應序號的num[i]加一,沒有的話就新增,然後num[i]=1,wordnum++;最後變了num,對於所有大於2的輸出對應序號的word。如果想節省空間的話就用動態空間。
第一題的升級做法:a,使用trie樹儲存每個字串,在葉子節點的釋義欄位處放出現次數。然後遍歷樹。
b、使用stl,用對映表 mapword_num,來記錄每個出現字串及出現次數,然後遍歷。兩種做法都能很大提高效率。
第二題:int word[256];初始化為0;讀入字元ch,word[ch]++這樣能記錄所有出現的字元及出現次數。
18樓:匿名使用者
第一題的字串是什麼?莫非是指字元?
第二題看是否區分大小寫,不區分就開個26的陣列,區分就開個52的陣列,初始化為0,碰上對應字母就把相應位置置1,最後遍歷下陣列輸出對應字母就行了。
C語言字串問題
兩重圓括號純屬是多打了吧 你要是能看懂前面那條語句的話,後面那條語句其實差不多,賦值表示式的值等同於賦值號右端表示式的值,因此在str2 count2 0 的時候括號內表示式的值就是 0 也就是0,c中不存在布林型別,因此0表示假,非0皆為真。while str1 count1 str2 count...
C語言字串輸出亂碼,C語言,字串輸出是亂碼
輸出來亂碼是必須的,因為你的數源據型別搞錯了bai,你使用的是字元 du函式zhistringcopy 來拷貝字元 那麼要處理的數dao據當是char型別,然而你所定義的指標應當也是char型別 你應當修改的地方是 int str1,str2 請將int改為char 將你程式中的所有int替換為ch...
關於c語言中字串指標變數的問題
樓主你好 字元指標ps賦值後是字串 this is a book 的首地址 也就是說此時ps指向第一個字元 t ps就是 t n 10 ps ps n 就是使指標ps指向字串 this is a book 的第11個字元 也就是 b 那麼printf s n ps 就是輸出以ps為首的 以 0 結束...