// 查詢source中匹配chars中字元的第乙個字元並返回指向這個字元的指標
const
char
*find_char
(const
char
*source,
const
char
*chars)
for(
;*source !=
'\0'
;++source)}}
return
null
;// 未找到
intmain()
else
}
// 判斷字串是否相等
intmystrcmp
(const
char
*source,
const
char
*str)
int len =0;
for(
;*source !=
'\0'
&&*str !=
'\0'
;++source,
++str)
++len;}if
(*str !=
'\0'
)return len;
// 兩個字串相等,返回相等長度
}// 刪除str中substr部分
intdel_substr
(char
*str,
const
char
*substr)
int len =0;
for(
;*str !=
'\0'
;++str)
else}if
(len)
return0;
}int
main()
//逆置字串的字元
void
reverse_string
(char
*str)
int len =0;
char
*tmp = str;
while
(*tmp !=
'\0'
)// 首尾交換
for(
int left =
0, right = len -
1; left < right;
++left,
--right)
}int
main()
// eratosthenes篩選法求質數
// 陣列表示該位是不是質數,1表示是,0表示不是
// 偶數只有2是質數,所以陣列中只存奇數
// arr[n]對應數字2*n+3
// 使用字元陣列
void
prame
(char
*arr,
const
int size)
// 將所有元素值設為true
for(
int i =
0; i < size;
++i)
// 剔除偶數,在對應的元素上置0
for(
int curr =
0; curr < size;
++curr)}}
}int
main()
}}
// 使用位陣列
void
prameusebit
(char
*arr,
int size)
size *=8
;// 函式修改部分
// 將所有元素值設為true
for(
int i =
0; i < size;
++i)
// 剔除偶數,在對應的元素上置0
for(
int curr =
0; curr < size;
++curr)}}
}int
main()
}}
// 統計每1000個數有多少個質數並列印
void
countprame
(char
*arr,
int size)
prameusebit
(arr, size)
;// 篩選質數
size *=8
;int count =2;
// 陣列中沒有2,0~1000加上1
int frist =1;
// 第一次執行迴圈標誌
for(
int curr =
1; curr < size;
++curr)
}elseif(
test_bit
(arr, curr))}
}int
main()
C和指標 第六章 指標
1.指標在進行間接訪問之前,確保已被初始化。否則,會給指標分配乙個非法位址,輕則報錯,重則在毫不相干的地方報錯 指標偶爾包含合法位址 2.為了測試乙個指標變數是否為null,你可以將它與零值進行比較 3.注意 指標變數可以作為左值使用,並不是因為它們是指標,而是因為它們是變數。間接訪問指定了乙個特定...
第六章課後習題
1.this和super各有幾種用法?1.子類的建構函式如果要引用super的話,必須把super放在函式的首位。2.子類中的同名成員變數或方法隱藏了父類的成員變數或方法,需要用到super。3.用super直接傳遞引數。2.子類物件例項化的具體過程是什麼?1.子類在構造物件時候,必須訪問父類的建構...
第六章 指標
1.多位元組資料的位址是在最左邊還是最右邊的位置,不同的機器有不同的規定,這也正是大端和小端的區別,位址也要遵從邊界對齊 2.高階語言的乙個特性就是通過名字而不是位址來訪問記憶體的位置,但是硬體仍然通過位址訪問記憶體位置 3.記憶體中的變數都是義序列的0或1的位,他們可以被解釋為整數或者其他,這取決...