发布时间:2023-09-04 18:00
目录
strcat的用法及原型
strcpy的用法及原型
strcmp用法及原型
strlen用法及原型
strcat的用法及原型
strcat(str1,str2) 意为将字符串str2连接到字符串str1之后
strcat用法如下
#include
#include
int main ()
{
char src[99], dest[99];
strcpy(src, "This is source");
strcpy(dest, "This is destination");
strcat(dest, src);
printf("最终的目标字符串: %s", dest);
return 0;
}
输出结果:This is sourseThis is destination
strcat函数的原型如下
char *strcat(char *strDest, const char *strScr) //将源字符串加const,表明其为输入参数
{
char * p = strDest; //将目的字符串数组赋给p
if(strDest==NULL||strScr==NULL)//对原地址和目的地址加非0断言
return strDest;
while(*p) //是while(*p!=’\0’)的简化形式
{
p++;
}
while(*strsource!=0)
{
*p=*strScr;
p++; //依次++以进行连接
strScr++;
}
*p='\0'; //有无必要?
return strDest; //为了实现链式操作,将目的地址返回
}
dev c++调试代码如下
#include
#include
char *strcat(char *strDest, const char *strScr) //将源字符串加const,表明其为输入参数
{
char * p = strDest; //将目的字符串数组赋给p
if(strDest==NULL||strScr==NULL)//对原地址和目的地址加非0断言
return strDest;
while(*p) //是while(*p!=’\0’)的简化形式
{
p++;
}
while(*strScr!=0)
{
*p=*strScr;
p++; //依次++以进行连接
strScr++;
}
*p='\0'; //有无必要?
return strDest; //为了实现链式操作,将目的地址返回
}
int main(){
char str1[99]="The";
char str2[99]="One";
printf("%s\n",strcat(str1,str2));
return 0;
}
输出结果为TheOne 如果怀疑strcat函数本身发挥作用的话可以将调用的函数名称改成strcate之类的 结果也一样哦 来 试试看~
strcpy的用法及原型
strcpy(str1,str2)是将字符串str2复制到str1中去。
其原型char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest。
需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。
strcpy的用法如下
#include
#include
int main ()
{
char str1[]="Sample";
char str2[99];
char str3[99];
strcpy (str2,str1);
strcpy (str3,"copy successfully");
printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3);
return 0;
}
输出结果为 str1:Sample
str2: Sample
str3: copy successfully
strcpy的原型在这里
char *strcpy(char *strDest, const char *strScr)
{
char *p=strDest;
if(strDest==NULL||strScr==NULL)//对原地址和目的地址加非0断言
return strDest;
while(*strScr) //是while(*strScr != ’\0’)的简化形式;
{
*strDest++ = *strScr++;
}
*strDest = '\0'; //当strScr字符串长度小于原strDest字符串长度,时,如果没有改语句,
// 就会出错了
return strDest;
}
dev c++调试过程 strcpy用strcpye代替
#include
#include
char *strcpye(char *strDest, const char *strScr)
{
char *p=strDest;
if(strDest==NULL||strScr==NULL)//对原地址和目的地址加非0断言
return strDest;
while(*strScr) //是while(*strScr != ’\0’)的简化形式;
{
*strDest++ = *strScr++;
}
*strDest = '\0'; //当strScr字符串长度小于原strDest字符串长度,时,如果没有改语句,
// 就会出错了
return strDest;
}
int main ()
{
char str1[]="Sample";
char str2[99];
strcpye(str2,str1);
printf ("str1: %s\nstr2: %s\n",str1,str2);
return 0;
}
strcmp用法及原型
strcmp用于比较字符串。 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。
其中str1和str2可以是字符串常量或者字符串变量,返回值为整形。返回结果如下规定:
① str1小于str2,返回负值;
② str1等于str2,返回0;
③ str1大于str2,返回正值;
strcmp函数实际上是对字符的ASCII码进行比较:首先比较两个字符串的第一个字符,若不相等,则停止比较并得出两个ASCII码大小比较的结果;如果相等就接着向后第二个字符,以此类推。无论两个字符串是什么样,strcmp函数最多比较到其中一个字符串遇到结束符'/0'为止,就能得出结果。
特别注意:strcmp(const char *str1,const char * str2) 这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。
规定返回值为正数,负数,0 。而确切数值是依赖不同的C实现的。
当两个字符串不相等时,C 标准没有规定返回值会是 1 或 -1,只规定了正数和负数。
有些会把两个字符的 ASCII 码之差作为比较结果由函数值返回。
strcmp用法如下:
#include
#include
int main ()
{
char str1[99];
char str2[99];
int ret;
strcpy(str1, "abcdefF");
strcpy(str2, "ABCDEFF");
ret = strcmp(str1, str2);
if(ret < 0)
{
printf("str1 小于 str2");
}
else if(ret > 0)
{
printf("str1 大于 str2");
}
else
{
printf("str1 等于 str2");
}
return 0;
}
运行结果:str1大于str2
strcmp原型如下
int strcmp (const char *str1,const char *str2)
{
int len = 0;
while(*str1 && *str2 && (*str1 == *str2))
{
str1++;
str2++;
}
return *str1-*str2;
}
dev c++调试代码如下 strcmp用strcmpa代替
#include
int strcmpa (const char *str1,const char *str2)
{
int len = 0;
while(*str1 && *str2 && (*str1==*str2))
{
str1++;
str2++;
}
return *str1-*str2;
}
int main(void)
{
char str1[99] = {"AA"};
char str2[99] = {"aa"};
printf("%d\n",strcmpa(str1,str2));
}
strlen用法及原型
strlen用于记录字符串长度。
strlen(const char *str) 计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。
strlen用法实例在这里:
#include
#include
int main ()
{
char str[99];
int len;
strcpy(str, "You are my destiny");
len = strlen(str);
printf("%s的长度是 %d\n", str, len);
return 0;
}
strlen原型如下
int strlen(char *str)
{
int len = 0;
while(*str++)
{
len++;
}
return len;
}
dev c++调试过程如下 函数名用strlenn代替
#include
int strlenn(char *str)
{
int len = 0;
while(*str++)
{
len++;
}
return len;
}
int main(void)
{
char str[99] = {"You are my destiny"};
printf("%d\n",strlenn(str));
}
刚学敲代码的大一小白在此 有不好的地方烦请大家指正~熬夜打字不易 谢谢大家喜欢呀 希望能对你有所帮助❤