一、
char str[10]=「string!」;和char str[10]=等價。(對)您必須明白char str[10];是定義了乙個含有十個元素的陣列,而且這十個元素在記憶體中是以連續的儲存單元存放的。(對)
char str="string!"中,陣列的大小等於字串的長度加1(對)
字串常量「str」的型別是字串型別(錯)因為資料型別有整型,浮點型,字元型。二、字元陣列的每乙個元素可存放乙個字元,並且最後乙個元素必須是『\0』; (錯)這不是字串而是字元;
對於一維字元陣列,不能用字串常量來賦值。(錯)
對於字串常量「string!」系統已經自動在最後加入了』\0』,表示串結尾;(對)
#include
main()
printf
("%d\n"
,n);}}
該程式輸出的結果是3;
三、
字串複製的正確方式:
achar str="\0";四、*b、 char ss[6][20];ss[1]=「right?」』 (錯)
b、 char ss[6]; ss[1]="right?』』(對)
b中的ss[1]是指標,所以是可以對它進行賦值的。
char str="\x43";(錯)
為其是char型別所以是換成『\x43』因為str是字元型的變數,而不是字串常量。
char str="\0";(對)
因為對於一維字元陣列能用字串常量來賦值。
strcmp函式是string compare(字串比較)的縮寫,用於比較兩個字串並根據比較結果返回整數。基本形式為strcmp(str1,str2),若str1=str2,則返回零;若str1str2,則返回正數 還有小寫大於大寫的字母;
五、
int aaa(char
*s)> 首先 char
*s 接受乙個字元型dao陣列的首位址bai
並將這個首位址賦給另du乙個字元型指標zhi char
*twhile
(*t++
);不斷迴圈直到dao *t 為『\0』,
再將 t-
1 ,這時字元指標 t 指向字串的最後乙個字元!
又因為 s 指向字元陣列的首位址即字串的首位址
所以 return
(t-s) 便是返回字元陣列中字串的長度。
#include
main()
;int i,j;
char t;
for(i=
0;i<
2;i++
)for
(j=i+
1;j<
5;j++
)puts
(a[1])
;}該程式的執行結果為fwo//按照程式的來就行。
最終答案輸出是 「abc\0」;
為什麼答案不是"abc\0ef";
從strcpy函式的實現**可以看出當src指標指向為『\0』時將會停止字串的複製,由此可以得知返回ret指標所指向的陣列a內容應該是「abc\0ef」,也就是說實際記憶體陣列a中的內容應該是「abc\0ef「;但是為什麼最終顯示會是"abc\0"呢,原因在於,strcpy的本身屬性:即strcpy只用於字串複製,並且它不僅複製字串內容之外,還會複製字串的結束符.
#include
#incldue
main()
我們都知道strcat(str,ptr)是將字串ptr內容連線到字串str後,然後得到乙個組合後的字串str,比如,str字串內容為"123456\0",ptr字串為"abc\0",那麼strcat(str,ptr)後str內容為"123456abc\0",輸出結果為123456abc這樣看來函式作用是將ptr內容接到了str的終止符\0上,道理很簡單,那麼如果我將str字串內容, 更改一下,讓str[1] = 『\0』,讓字串的第三位變成終止符,str內容變為"1\03456\0",那麼再strcat一次結果為何? 很簡單,輸出str結果為1abc,有人會問,那麼之前的其他的字元呢??事實上此時str內容為"1abc\06\0",但是 printf只會列印到\0結束,所以後面的6就被遺棄了,其實這也很簡單,如果乙個字串內的某個字元被換成了, 終止符\0,那麼就當作字串到這結束就好,再進行其他操作。
#include
main()
,*p[2]
;int i,j,s=0;
for(i=
0;i<
2;i++
)for
(i=0
;i<
2;i++
)for
(j=0
;p[i]
[j]>
0&&p[i]
[j]<=
'9';j+=2
)printf
("%d\n"
,s);
程式的輸出結果為6385;
#include
mian()
a[i]
='\0'
;gets
(b);
printf
("%s%s\n,a,b");
}輸入 fig flower is read.
該程式的執行的結果為 fig flower is read.
#include
main()
if(*p==
'\0'
)break;}
printf
("%s"
,&b[i]);
}}該程式的執行結果為you to china;
在c語言中的以下三個函式都在string.h當中.
strcmp:
strcmp函式是string
compare(字串比較)的縮寫,用於比較兩個字串並根據比較結果返回整數。基本形式為strcmp(str1,str2),若str1=str2,則返回零;若str1str2,則返回正數。
strcat:
我們都知道strcat(str,ptr)是將字串ptr內容連線到字串str後,然後得到乙個組合後的字串str,比如,str字串內容為"123456\0",ptr字串為"abc\0",那麼strcat(str,ptr)後str內容為"123456abc\0",輸出結果為123456abc這樣看來函式作用是將ptr內容接到了str的終止符\0上,道理很簡單,那麼如果我將str字串內容,
更改一下,讓str[1] = 『\0』,讓字串的第三位變成終止符,str內容變為"1\03456\0",那麼再strcat一次結果為何?
很簡單,輸出str結果為1abc,有人會問,那麼之前的其他的字元呢??事實上此時str內容為"1abc\06\0",但是
printf只會列印到\0結束,所以後面的6就被遺棄了,其實這也很簡單,如果乙個字串內的某個字元被換成了,
終止符\0,那麼就當作字串到這結束就好,再進行其他操作。
strcpy:
strcpy只用於字串複製,並且它不僅複製字串內容之外,還會複製字串的結束符.
字串練習題
1.請編寫乙個c函式,該函式可以實現將乙個整數轉為任意進製的字串輸出 include include char ch 16 函式宣告 將整數轉換為任意進製的字串 charchar int2sys int num,int n,int move bit int main else if n 8 else...
字串練習題
變數名是否合法 1.變數名只能由字母 數字 下劃線組成 2.只能以字母或下劃線開頭 源 while true s input 變數名 if s exit print 歡迎下次使用 break if s 0 isalpha or s 0 for i in s 1 if not i.isalnum or...
字串練習題
輸入兩個字串,從第乙個字串中刪除第二個字串中所有的字元。例如,輸入 they are students.和 aeiou 則刪除之後的第乙個字串變成 thy r stdnts.s1 input 請輸入第乙個字串 s2 input 請輸入第二個字串 s3 方法一 for i in s1 print i,...