关于字符串类的函数的使用。
1.strlen()
strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。
例如 char a[]="abcd/0abc" strlen(a)他的值是4.
2.strcmp() (全称:string compare)
其中:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止 (所以对于我这样的初学者,只需要用到判定两个字符串是否相等,即返回值是否为0)
C/C++函数,比较两个字符串
设这两个字符串为str1,str2, strcpy(str1,str2)
若str1==str2,则返回零; 显然这里用到是判定两字符串是否相等。
若str1<str2,则返回负数;
若str1>str2,则返回正数。
对于这不等于0的情况,目前我这基础只适合用来对一些字符串的排序问题。
例如:学生管理系统中名字排序问题(这里保证学生的名和姓都为字母('a'~‘z') first name(名字) last name(姓) 。显然按照ASCII和strcmp可以解决该类问题。
3.strcpy() (copy)
例如两个字符串 str1 =hello ,str2=hi 其中str1[100],str2[100],
puts (strcpy(str2,str1)) 输出结果是 hello
puts (strcpy(str1,str2)) 输出结果是 hi 因为str2的字符串是"hi/0"进行copy操作的时候,会把/0也进行复制。
注意点:strcpy(str1,str2) 如果str2声明的长度小于str1的声明长度,那么程序会出错。
4.strcat() //字符串的合并函数
例如两个字符串str1=“www.” 和str2=“4399.com”
char *p;
p=strcat(str1,str2);
puts(s); 结果输出 www.4399.com
5.strstr (str1,str2) //在str1中查找str2,即查找子序列。
若str1中存在str2那么返回值将会是在str1中的子序列str2的首地址。
若不存在,这返回NULL。