strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1str2,则返回负数;若str1str2,则返回正数。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、虚拟主机、营销软件、网站建设、城关网站维护、网站推广。
扩展资料:
规则:
当s1s2时,返回为负数;
当s1=s2时,返回值= 0;
当s1s2时,返回正数。
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。
参考资料:百度百科——strcmp
1、strcat()
此函数原型为 char *strcat(char *dest, const char *src).
功能为连接两个字符串,把src连接到dest后面;返回dest地址
实现如下
[cpp] view plaincopy
char * strcat(char *dest,const char *src)
{
char* addr=dest;
while(*dest)//找到'\0'
{
dest++;
};
while(*dest++=*src++)
{};
return addr;
}
2、strcmp()
此函数的函数原型为 int strcmp(const char *str1, const char *str2).
功能为比较两个字符串。
当str1指向的字符串大于str2指向的字符串时,返回正数。
当str1指向的字符串等于str2指向的字符串时,返回0。
当str1指向的字符串小于str2指向的字符串时,返回负数。
实现如下:
[cpp] view plaincopy
int strcmp(const char *str1, const char *str2)
{
while(*str1==*str2)
{
if(*str1=='\0')
return 0;
str1++;
str2++;
}
return *str1-*str2;
}
3、strcpy()
此函数原型为 char *strcpy(char* dest, const char *src)
功能为拷贝字符串内容到目的串,把src所指向的内容拷贝到dest
实现如下
[cpp] view plaincopy
char *strcpy(char *dest,const char *src)
{
//assert(dest!=NULLsrc!=NULL);
char *addr=dest;
while(*dest++=*src++);
return addr;
}
4、strlen()
此函数原型为unsigned in strlen(const char *str)
功能为返回字符串str的长度(不包括'\0')。
实现如下:
[cpp] view plaincopy
unsigned int strlen(const char *str)
{
unsigned len=0;
while(*str!='\0')
{
len++;
str++;
}
return len;
}
5、strchr() strrchr()
char *strchr(char *str, char c)
功能为查找str中首次出现c的位置,如有有,则返回出现位置,否则返回NULL。实现如下:
[cpp] view plaincopy
char *strchr(char *str, char c)
{
while(*str!='\0'*str!=c)
{
str++;
}
return (*str==c? str: NULL);
}
char *strrchr(char *str, char c)
功能为查找str中最后一次出现c的位置,如有有,则返回出现位置,否则返回NULL。实现如下:
[cpp] view plaincopy
char *strrchr(char *str, char c)
{
char *p=str+strlen(str);//p指向最后一个字符
while(p!=str*p!=c)
p--;
if(p==str*p!=c)
return NULL;
else return p;
}
6、strcspn() strspn()
strcspn
原型:size_t strcspn(const char *pstr, const char *strCharset)
MSDN解释为:在字符串pstr中搜寻strCharsret中所出现的字符,返回strCharset中出现的第一个字符在pstr中的出现位置。简单的说,若strcspn返回的数值为n,则代表字符串strCharsrt开头连续有n个字符不包含在pstr内的字符。
功能:返回后面字符串中第一个不在前者出现的下表。
7、strdup()
此函数原型为char *strdup(const char *str)
功能为拷贝字符串到新建的内存,返回内存指针。若失败,返回NULL。要注意,返回的指针指向的内存在堆中,所以要手动释放。
函数实现:
[cpp] view plaincopy
char *strdup(const char *str)
{
char *p=NULL;
if(str(p=(char*)malloc(strlen(str)+1)))
strcpy(p,str);
return p;
8、strrev()
此函数的原型为char *strrev(char *str)
功能为反转字符串,返回字符串指针。
函数实现:
[cpp] view plaincopy
char *strrev(char *str)
{
if(str==NULL)
return NULL;
char *start=str;
char *end=str+strlen(str)-1;
char temp;
while(startend)
{
temp=*start;
*start=*end;
*end=temp;
start++;
end--;
}
return str;
}
9、strstr()
函数原型为char *strstr(const char str1, const char *str2)
功能为查找字符串str2在str1中出现的位置,找到则返回位置,否则返回NULL。
函数实现:
[cpp] view plaincopy
char *strstr(const char str1, const char *str2)
{
int length1=strlen(str1);
int length2=strlen(str2);
while(length1=length2)
{
length1--;
if(!strncpy(str1,str2,length2))//比较前n个字符串,类似strcpy
return str1;
str1++;
}
return NULL;
}
1、strcpy函数是复制字符串的,接受两个参数,一个是被复制字符串,另一个新字符串。具体的用法,首先打开编辑器新建一个c语言的程序文件,写入头文件和主函数:
2、接着定义两个数组a和b,程序经过strcpy函数处理,将b数组中的字符串复制到a数组中,最后打印出结果:
3、最后来看看效果。打开调试窗口,输入一句话,按下回车输出了这句话。以上就是C语言中strcpy的用法:
函数声明:extern unsigned int strlen(char *s);
所属函数库:string.h
功能:返回s所指的字符串的长度,其中字符串必须以’\0’结尾
参数:s为字符串的初始地址
使用举例:
代码如下
编译运行结果
说明:
函数strlen比较容易理解,其功能和sizeof很容易混淆。其中sizeof指的是字符串声明后占用的内存长度,它就是一个操作符,不是函数;而strlen则是一个函数,它从第一个字节开始往后数,直到遇见了’\0’,则停止
第一 string头文件中的函数strlen 只可以用来测试字符型数组的长度,其他类型不可以
第二 如果要测试int 修改原函数中的参数,会导致数组长度变长(计算机会一直找下去,直到遇到\0)
第三 如果是字符数组,当里面的字符数少于数组长度时,可以正常输出用strlen,如果等于数组长度,则会出现问题
函数介绍:
(推荐教程:c语言教程)
strlen()函数用于计算字符串的长度,直到空结束字符,但不包括空结束字符。
语法结构:
size_t strlen(const char *str)
参数说明:
str -- 要计算长度的字符串。
返回值:
该函数返回字符串的长度
strlen:计算字符串长度的库函数名。
str:通常,程序员喜欢用它作 字符串 变量名。它是string(英文词字符串的缩写)。
len:通常,程序员喜欢用它作 变量名。它是 length(英文词长度的缩写)。
例如:
char str[20]="I am a student";
int len;
len = strlen(str);
printf("the string length is: %d",len);
扩展资料:
函数原型
extern unsigned int strlen(char *s);
在Visual C++ 6.0或Dev-C++中,原型为size_t strlen(const char *string);,其中size_t实际上是unsigned int,在VC6.0或Dev-C++中可以看到这样的代码:
typedef unsigned int size_t;
头文件:string.h或cstring
格式:strlen (字符指针表达式)
功能:计算给定字符串的(unsigned int型)长度,不包括'\0'在内
说明:返回s的长度,不包括结束符NULL。
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。
参考资料来源:百度百科-strlen (C/C++语言函数)
#include stdio.h
#define N 100
char *Mid(char a[],int i,int j);//返回值类型是指针
void main()
{
char k[12]="HELLOWWORLD";
printf("%s", Mid(k,3,4) );
}
char *Mid(char a[],int i,int j)
{
int m,t=0;
static char b[N]; //为保证不丢失,定义成静态
for(m=i-1;mi+j-1;m++)
{
b[t++]=a[m];
}
b[t]=0;//字符串结束符
return b;
}