而是用strlen(string) 则可以得出字符串的实际长度。
size_t数据类型
类型size_t在标准库头文件<stddef.h>中定义,它也是运算符sizeiof()的返回类型。类型size-t定义了一个无符号的整数类型unsigned int。之所以要这么做,是考虑到代码的可移植性。在各种C语言中,sizeof()和strlen()函数的返回类型互不相同。这是由编译器的作者来决定的。把这个类型定义为size_t,并把size_t定义放在头文件中,非常便于在代码中包容这种依赖性。
所以,要正确的使用size_t类型,因为它是一个无符号整数,在表达式中使用无符号数可能导致不可预料的结果,如下:
if(strlen(x) >= strlen(y))
if(strlen(x) - strlen(y)>=0)
上面这两个表达式看起来是相当的,实际上它们是不等的。第一条语句会按照预想的工作,但是第二条语句就永远都是成立的,因为两个无符号整数的运算结果是一个无符号整数,永运都是>=0的。
所以要注意了,可以将得到的size_t强转为int类型,在用于计算。
3、连接字符串
strcat
函数原型: char *strcat(char *destin, char *source);
它会将字符串source连接到字符串destin的末尾,并且返回destin
也可以使用strncat
函数原型:用 法: char *strcat(char *destin, char *source,size_t n);
第三个参数也是size_t的类型,这个函数是表示将字符串source的前面n个字符连接到destin的末尾
4、比较字符串
strcmp
函数原型:int strcmp(char *str1, char *str2);
如果str1>str2 返回>0,如果str1=str2 返回=0,如果str1<str2 返回<0。
strncmp
函数原型: int strncmp(char *str1, char *str2, unsigned maxlen);
比较两个字符串的前maxlen个字符
strnicmp
函数原型: int strnicmp(char *str1, char *str2, unsigned maxlen);
比较两个字符串的前maxlen个字符,不区分大小写。
5、搜索字符串
strchr
函数原型:char *strchr(char *str, char c);
第一个参数是要搜素的字符串(是char数组的地址),第二个参数是要查找的字符。这个函数会从字符串的开头开始搜索,返回在字符串中找到的第一个给定字符的地址。这是一个在内存中的地址,其类型为char*,表示“char的指针”,所以要存储返回,必须创建一个能存储字符地址的变量。如果没有找到给定的字符,函数就会返回NULL,他相当于0,表示这个指针没有指向任何对象。
举例:
strtchr和strchr非常类,只不过是从字符串末尾开始查找。
strstr
函数原型;_CRTIMP char * __cdecl strstr(const char *, const char *);
它查找一个字符串中的子字符串,返回找到的第一个子字符串的位置指针。如果找不到匹配的字符串串,就返回NULL。
#include<stdio.h>
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-34907-2.html
最后的笑脸帅啊
为显得不这么势利
最终受害的始终都是消费者