主要内容 #
这节课,我们继续介绍一些C/C++中内置的一些字符串处函数。
一、int strcmp(const char *s1,const char *s2) #
函数功能:
- 比较字符串 s1 和 s2 的大小。
- 如果 s1 大于 s2,返回正数。
- 如果 s1 等于 s2,返回0。
- 如果 s1 小于 s2,返回负数。
- 字符串的比较规则:逐一按照 ASCII 的数值大小比较。
字符串的比较规则举例:
"dashima" 等于 "dashima"; // true "a" 小于 "b"; // true,从 ASCII 值大小可以得知 "dashima" 大于 "abc"; // true,长度 "abc_a" 小于 "abc_b"; // true,从 ASCII 值大小可以得知 "abc_1" 小于 "abc_9"; // true,从 ASCII 值大小可以得知 "abc_0" 小于 "abc_1"; // true,从 ASCII 值大小可以得知 "a" 小于 "_"; // true,从 ASCII 值大小可以得知 "A" 小于 "a"; // true,从 ASCII 值大小可以得知
详见下面例程:
#include < iostream > #include < cstring > using namespace std; int main() { char dashima1[] = "aaa"; char dashima2[] = "bbbb"; int result = strcmp(dashima1, dashima2); if(result > 0) cout << dashima1 << " > " << dashima2 << endl; else if(result < 0) cout << dashima1 << " < " << dashima2 << endl; else cout << dashima1 << " = " << dashima2 << endl; return 0; }
输出结果:
aaa < bbbb
请尝试下列各组字符串的比较结果:
"dashima" , "dashima"; "a" , "b"; "dashima" , "abc"; "abc_a" , "abc_b"; "abc_1" , "abc_9"; "abc_0" , "abc_1"; "a" , "_"; "A" , "a";
请注意,字符串,包括数组,都是不可以直接使用 == 等符号进行大小比较的。
请编程,设计一个函数,完成字符串的大小规则比较。
请点击连接,访问大师码 OJ 完成答题。
计时 10 分钟。
二、int strncmp(const char *s1,const char *s2, const int n) #
函数功能:
- 比较字符串 s1 和 s2 的前 n 个字符的大小。
- 如果 s1 大于 s2,返回正数。
- 如果 s1 等于 s2,返回0。
- 如果 s1 小于 s2,返回负数。
- 字符串的比较规则:先比较长度,按照 ASCII 的数值大小比较。
三、int strlen(const char *s1) #
函数功能:
- 返回字符串的长度。字符串末尾的 \0 不计入总长度。
四、int strlwr(char *s1) #
函数功能:
- 将 s1 中的大写字母转化成小写字母。
- 调用后,s1 的内容被改变了。
五、int strupr(char *s1) #
函数功能:
- 将 s1 中的小写字母转化成大写字母。
- 调用后,s1 的内容被改变了。