C语言 比较字符串的大小关系
生活随笔
收集整理的這篇文章主要介紹了
C语言 比较字符串的大小关系
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
| #include<stdio.h> | int strcmp(const char *s1, const char *s2) | 比較s1指向的字符串和s2指向的字符串的大小關(guān)系(從第一個(gè)字符開始逐一比較,當(dāng)出現(xiàn)不同的字符時(shí),便可確定這些字符的大小關(guān)系)。 | 若s1 和 s2相等,則返回0;若s1 大于 s2,則返回正整數(shù)值;若s1 小于 s2,則返回負(fù)整數(shù)值。 |
運(yùn)行結(jié)果:
strcmp函數(shù)實(shí)現(xiàn):
int strcmp(const char *s1, const char *s2){while (*s1 == *s2){if(*s1 == '\0'){return 0;}s1++;s2++;}return (unsigned char)*s1 - (unsigned char)*s2; }strncmp函數(shù)指定前n個(gè)字符串進(jìn)行比較
| #include<stdio.h> | int strncmp(const char *s1, const char *s2, size_t n) | 比較s1指向的字符的數(shù)組和s2指向的字符的數(shù)組的前n個(gè)字符的大小關(guān)系。 | 若s1 和 s2相等,則返回0;若s1 大于 s2,則返回正整數(shù)值;若s1 小于 s2,則返回負(fù)整數(shù)值。 |
運(yùn)行結(jié)果:
strncmp函數(shù)實(shí)現(xiàn):
int strncmp(const char *s1, const char *s2, size_t n){while (n && *s1 && *s2){if(*s1 != *s2){return (unsigned char)*s1 - (unsigned char)*s2;}s1++;s2++;n--;}if(!n){return 0;}if(*s1){return 1;}return -1; }總結(jié):
- strcmp 函數(shù) 和 strncmp函數(shù)對字符串大小的判斷,是基于字符編碼進(jìn)行的。字符編碼表示字符的值,它依賴于該環(huán)境中采用的字符編碼體系。
- strcmp 函數(shù) 和 strncmp函數(shù)不能進(jìn)行具有可移植性(不依賴于運(yùn)行環(huán)境中采用字符編碼等)的字符串的比較。
- strncmp函數(shù)開頭n個(gè)字符內(nèi)沒有null字符也可以進(jìn)行比較(不是字符串也可以進(jìn)行比較)。
總結(jié)
以上是生活随笔為你收集整理的C语言 比较字符串的大小关系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言 连接字符串
- 下一篇: C语言 读取文件内容