1、strlen函数
strlen函数的功能是计算字符串的长度并返回吗该字符串的长度
代码实现:
int strlen(char c[])
{
int ans=0;
for(int i=0;c[i]!='\0';i++)
{
ans++;
}
return ans;
}
strlen函数的使用:
#include<stdio.h>
int strlen(char c[])
{
int ans=0;
for(int i=0;c[i]!='\0';i++)
{
ans++;
}
return ans;
}
int main()
{
char a[100]="helloworld!";
int len=strlen(a);
printf("%d",len);
return 0;
}
输出结果为11。
调试结果:
2、strcmp函数
这个函数用于比较两个字符串并根据比较结果返回整数。若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。
代码实现:
int strcmp(char a[],char b[])
{
int lena=0,lenb=0;
for(int i=0;a[i]!='\0';i++)
{
lena++;
}
for(int i=0;b[i]!='\0';i++)
{
lenb++;
}
if(lena==lenb)
{
return 0;
}
else if(lena>lenb)
{
return 1;
}
else
{
return -1;
}
}
strcmp函数的使用
#include<stdio.h>
int strcmp(char a[],char b[])
{
int lena=0,lenb=0;
for(int i=0;a[i]!='\0';i++)
{
lena++;
}
for(int i=0;b[i]!='\0';i++)
{
lenb++;
}
if(lena==lenb)
{
return 0;
}
else if(lena>lenb)
{
return 1;
}
else
{
return -1;
}
}
int main()
{
char a[100]="helloworld!";
char b[100]="hello";
printf("%d",strcmp(a,b));
return 0;
}
输出结果为1。
调试结果:
3、strcpy函数
strcpy的功能是将字符串str2的内容复制到字符串str1当中,并返回字符串str1。
代码实现:
char *strcpy(char *str1,char *str2)
{
str1=str2;
return str1;
}
strcpy函数的使用:
#include<stdio.h>
char *strcpy(char *str1,char *str2)
{
str1=str2;
return str1;
}
int main()
{
char a[100]="helloworld!";
char b[100]="I am Amy";
printf("%s",strcpy(a,b));
return 0;
}
输出结果为I am Amy.
调试结果:
4、strcat函数
这个函数的作用是将两个字符串连接起来。
代码实现:
char *strcat(char *str1,char *str2)
{
char *str3=str1;
while(*str1!='\0')
{
str1++;
}
while(*str1++ = *str2++)
{
NULL;
}
return str3;
}
函数的使用:
#include<stdio.h>
char *strcat(char *str1,char *str2)
{
char *str3=str1;
while(*str1!='\0')
{
str1++;
}
while(*str1++ = *str2++)
{
NULL;
}
return str3;
}
int main()
{
char a[100]="Hello";
char b[100]=" I am Amy";
printf("%s",strcat(a,b));
return 0;
}
输出结果为:Hello I am Amy
调试结果:
5、strchr函数
函数的功能是在参数str所指向的字符串中搜索第一次出现字符c(一个无符号字符)的位置。
代码实现:
char *strchr(char *s,int c)
{
char *str=s;
while(*str!=c&&*str!='\0')
{
str++;
}
if(*str!='\0'){
return str;
}else{
return 0;
}
}
函数的使用:
#include<stdio.h>
char *strchr(char *s,int c)
{
char *str=s;
while(*str!=c&&*str!='\0')
{
str++;
}
if(*str!='\0'){
return str;
}else{
return 0;
}
}
int main()
{
char a[100]="Hello";
char ch='l';
printf("%s",strchr(a,ch));
return 0;
}
输出结果为:llo。
调试结果:
6、strstr函数
strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回 str1字符串从 str2第一次出现的位置开始到 str1结尾的字符串;否则,返回NULL。
代码实现:
char *strstr(char *str1,char *str2)
{
char *str3=str1;
while(*str1!=*str2&&*str1!='\0')
{
str1++;
str3++;
}
while(*str2!='\0')
{
if(*str1==*str2)
{
str1++;
str2++;
}else
{
break;
}
}
if(*str2=='\0')
return str3;
else
return 0;
}
代码使用:
#include<stdio.h>
char *strstr(char *str1,char *str2)
{
char *str3=str1;
while(*str1!=*str2&&*str1!='\0')
{
str1++;
str3++;
}
while(*str2!='\0')
{
if(*str1==*str2)
{
str1++;
str2++;
}else
{
break;
}
}
if(*str2=='\0')
return str3;
else
return 0;
}
int main()
{
char a[100]="Hello";
char b[100]="ll";
printf("%s",strstr(a,b));
return 0;
}
输出结果为:llo。
如果b[100]=“lo”,那么输出结果为null,因为字符串a中没有为“lo”的子串。
调试结果:
7、strncmp函数
strncmp函数为字符串比较函数,字符串大小的比较是以ASCII 码表上的顺序来决定,功能是把 str1 和 str2 进行比较,最多比较前 n 个字节,若str1与str2的前n个字符相同,则返回0;若s1大于s2,则返回大于0的值;若s1 小于s2,则返回小于0的值。
代码实现:
int strncmp(char *str1,char *str2,int c)
{
int ans=0,k=0;
while(k!=c)
{
ans+=(*str1-*str2);
*str1++;
*str2++;
k++;
}
if(ans>0)
return 1;
else if(ans==0)
return 0;
else
return -1;
}
函数的使用:
#include<stdio.h>
int strncmp(char *str1,char *str2,int c)
{
int ans=0,k=0;
while(k!=c)
{
ans+=(*str1-*str2);
*str1++;
*str2++;
k++;
}
if(ans>0)
return 1;
else if(ans==0)
return 0;
else
return -1;
}
int main()
{
char a[100]="asdfg";
char b[100]="zxcvb";
int c=3;
printf("%d",strncmp(a,b,c));
return 0;
}
输出结果为-1。
调试结果:
8、strncpy函数
strncpy函数用于将指定长度的字符串复制到字符数组中,语法形式为:char *strncpy(char *dest, const char *src, int n),表示把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回被复制后的dest。
代码实现:
char *strncpy(char *str1,char *str2,int c)
{
int i;
for(int i=0;i<c;i++)
{
str1[i]=str2[i];
}
return str1;
}
函数的使用:
#include<stdio.h>
char *strncpy(char *str1,char *str2,int c)
{
int i;
for(int i=0;i<c;i++)
{
str1[i]=str2[i];
}
return str1;
}
int main()
{
char a[100];
char b[100]="Hello!";
int c=3;
printf("%s",strncpy(a,b,c));
return 0;
}
输出结果为:Hel。
调试结果:
9、strtok函数
strtok函数的功能是将字符串str1分解为几个字符串。
函数的使用例子:
#include<stdio.h>
#include<string.h>
int main()
{
char a[100]="this-is-good-program";
char s[2]="-";
char *p=strtok(a,s);
while(p!=NULL)
{
printf("%s\n",p);
p=strtok(NULL,s);
}
return 0;
}
调试结果: