在我們的日常c語言程式設計中,對於字串的處理,往往會出現不同種類的錯誤。其中,最常見的錯誤就是函式呼叫錯誤。這是因為我們對於字串處理函式還沒有真真地理解。下面,讓我們來深刻理解這些函式的實現過程:
1.字串常量
即:位於一對雙括號中的任何字元。雙引號裡的字元加上編譯器自動提供的結束標誌\0字元,作為乙個字串儲存在記憶體中。如:printf("%s",「hello」); //「hello」
2.字串陣列
char m[100] = 「hello,world」; //定義字串陣列時必須指定陣列大小(整型常量),在指定大小時,要確保陣列的大小比預定的大乙個,因為編譯器會自動新增』\0』。
char m=; //注意標誌結束的空字元,若沒有它,得到的只是乙個字元陣列而不是字串
3.利用char指標定義字串
char *m = 「hello,world」; //自動新增』\0』
常規方法
#include
int mystrlen()
;//函式宣告
int main()
int mystrlen
(char str1)
return i;
}
指標處理#include
int mystrlen()
;int main()
int mystrlen
(char *str1)
return count;
}
執行結果
常規方法
#include
#include
void
mystrcat()
;int main()
void
mystrcat
(char str1[
],char str2)
//將字串str2連線到str1,與要保證str1陣列記憶體足夠大。
str1[len1+i]
='\0'
;}
指標處理#include
void
mystrcat()
;int main()
void
mystrcat
(char *str1,char *str2)
//陣列作為形參被傳遞,可以採用指標。
執行結果
常規方法
#include
int mystrcmp
(char str1[
],char str2)
;int main()
int mystrcmp
(char str1[
],char str2)
else
i++;}
return sum;
}
指標處理//指標操作
#include
int mystrcmp()
;int main()
int mystrcmp
(char *str1,char *str2)
return
*str1-
*str2;
}
執行結果
常規方法
#include
void
mystrcpy()
;int main()
void
mystrcpy
(char str1[
],char str2)
str1[i]
='\0'
;}
指標處理//指標操作
#include
int mystrcmp()
;int main()
int mystrcmp
(char *str1,char *str2)
return
*str1-
*str2;
}
執行結果
字串知識總結:
1、c語言約定』\0』作為字串的結束標誌,它占用記憶體空間,但不計入串的長度。
2、在strcat()和strcopy()重寫的常規方法,需要手動新增結尾標誌』\0』。
3、在字串陣列作為形式引數表示時,可以用""+陣列名,例如str。
4、字串的輸出格式為:%s。
C語言常用字串處理函式
1 函式名 stpcpy 功 能 拷貝乙個字串到另乙個 用 法 char stpcpy char destin,char source 2 函式名 strcat 功 能 字串拼接函式 用 法 char strcat char destin,char source 3 函式名 strchr 功 能 在...
C語言常用字串處理函式
下面介紹幾個最常用的字串函式。格式 puts 字元陣列名 功能 把字元陣列中的字串輸出到顯示器。即在螢幕上顯示該字串。例7 12 include stdio.h main 從程式中可以看出puts函式中可以使用轉義字元,因此輸出結果成為兩行。puts函式完全可以由printf函式取代。當需要按一定格...
C語言常用字串處理
字串 字串是由零個或者多個字元組成的有限序列 子串 字串中任意個連續的字元組成的子串行,並規定空串是任意串的子串,字串本身也是子串之一 abcdefg abc 就是其子串,但是 ade 不屬於子串範圍。子串行 不要求字元連續,但是其順序與其在主串中相一致 上例中,abc 與 ade 都屬於子串行範圍...