| char *name; |
而不是
| char name[10]; |
前者沒有說明指向哪兒,更沒有確定大小,導(dǎo)致了亂碼的錯誤,印象挺深刻的。
另外,字符串的賦值也是需要注意的,如果是用字符指針的話,既可以定義的時候賦初值,即
| char *a="Abcdefg"; |
也可以在賦值語句中賦值,即
| char *a; a="Abcdefg"; |
但如果是用字符數(shù)組的話,就只能在定義時整體賦初值,即char a[5]={"abcd"};而不能在賦值語句中整體賦值。
常用字符串函數(shù)列表如下,要會自己實現(xiàn):
| 函數(shù)作用 | 函數(shù)調(diào)用形式 | 備注 |
| 字符串拷貝函數(shù) | strcpy(char*,char *) | 后者拷貝到前者 |
| 字符串追加函數(shù) | strcat(char*,char *) | 后者追加到前者后,返回前者,因此前者空間要足夠大 |
| 字符串比較函數(shù) | strcmp(char*,char *) | 前者等于、小于、大于后者時,返回0、正值、負值。注意,不是比較長度,是比較字符ASCII碼的大小,可用于按姓名字母排序等。 |
| 字符串長度 | strlen(char *) | 返回字符串的長度,不包括'\0'.轉(zhuǎn)義字符算一個字符。 |
| 字符串型->整型 | atoi(char *) | |
| 整型->字符串型 | itoa(int,char *,int) | 做課設(shè)時挺有用的 |
| sprintf(char *,格式化輸入) | 賦給字符串,而不打印出來。課設(shè)時用也比較方便 | |
注:對字符串是不允許做==或!=的運算的,只能用字符串比較函數(shù)
指針:
指針可以說是C語言中最關(guān)鍵的地方了,其實這個“指針”的名字對于這個概念的理解是十分形象的。首先要知道,指針變量的值(即指針變量中存放的值)是指針(即地址)。指針變量定義形式中:基本類型 *指針變量名 中的“*”代表的是這是一個指向該基本類型的指針變量,而不是內(nèi)容的意思。在以后使用的時候,如*ptr=a時,“*”才表示ptr所指向的地址里放的內(nèi)容是a。
指針比較典型又簡單的一應(yīng)用例子是兩數(shù)互換,看下面的程序,





