1求字符串长度的函数
#include <stdio.h>
int mystrlen(char a[])
{
int i;
for(i=0;a[i]!='\0';i++)
;
return i;
}
int main(void)
{
char a[100];
printf("请输入一个字符串:");
scanf("%s",a);
printf("这个字符串的长度是:%d!\n",mystrlen(a));
return 0;
}
2.
字符串的拷贝
#include<stdio.h>
char *mystrcpy(char *dst,const char *src)
{
int i=0;
while(*src)
{
*dst=*src;
dst++;
src++;
}
return dst;
}
int main(void)
{
char a[100],b[100];
printf("请输入一个字符串:");
scanf("%s",a);
mystrcpy(b,a);
printf("%s\n",b);
return 0;
}
#include <string.h>
void myreverse(char a[])
{
int i=0,k=strlen(a);
char b;
while(i<=k/2-1)
{
b=a[i];
a[i]=a[k-i-1];
a[k-i-1]=b;
i++;
}
}
int main(void)
{
char a[]="abcde";
myreverse(a);
printf("%s\n",a);
return 0;
}
#include<stdio.h>
char *mystrcpy(char *dst,const char *src)
{
int i=0;
while(*src)
{
*dst=*src;
dst++;
src++;
}
return dst;
}
int main(void)
{
char a[100],b[100];
printf("请输入一个字符串:");
scanf("%s",a);
mystrcpy(b,a);
printf("%s\n",b);
return 0;
}
3.
字符串的比较
#include<stdio.h>
int mystrcom(char *p1,char *p2)
{
for(;*p1==*p2&&*p1!='\0';)
{
p1++;
p2++;
}
return (*p1-*p2);
}
int main(void)
{
char a[100],b[100];
printf("请输入第一个字符串:");
scanf("%s",a);
printf("请输入第二个字符串:");
scanf("%s",b);
printf("%s %s %s\n",a,mystrcom(a,b)>0?"great than":"less than",b);
return 0;
}
char *mystrcat(char *p1,char *p2)
{
for(;*p1!='\0';)
{
p1++;
}
for(;*p2!='\0';)
{
*p1=*p2;
p1++;
p2++;
}
*p1='\0';
return p1;
}
int main(void)
{
char a[100],b[100];
printf("请输入第一个字符串:");
scanf("%s",a);
printf("请输入第二个字符串:");
scanf("%s",b);
mystrcat(a,b);
printf("%s\n",a);
return 0;
}
#include <string.h>
int mytrim(char str[])
{
int i,num,j=0,k=0,l=strlen(str);
for(;str[j]==' '||str[j]=='\t'||str[j]=='\n'||str[j]=='\r';)
{
j++;
}
i=l-1;
for(;str[i-k]==' '||str[i-k]=='\t'||str[i-k]=='\n'||str[i-k]=='\r';)
{
k++;
}
num=l-j-k;
for(i=0;i<num;i++)
{
str[i]=str[i+j];
}
str[num]='\0';
return strlen(str);
}
int main(void)
{
char a[]=" kfjsljd ";
mytrim(a);
printf("%s\n",a);
return 0;
}
void mydelete_c(char a[],char b)
{
int i=0,j=0;
while(a[i]!='\0')
{
if(a[i]!=b)
{
a[j]=a[i];
j++;
}
i++;
}
a[j]='\0';
}
int main(void)
{
char a[]="slkdfjskdfjfbbsfskdjfs443098sd",b='b';
mydelete_c(a,b);
printf("%s\n",a);
return 0;
}
#include <stdio.h>
#include<stdio.h>
int mystrcom(char *p1,char *p2)
{
for(;*p1==*p2&&*p1!='\0';)
{
p1++;
p2++;
}
return (*p1-*p2);
}
int main(void)
{
char a[100],b[100];
printf("请输入第一个字符串:");
scanf("%s",a);
printf("请输入第二个字符串:");
scanf("%s",b);
printf("%s %s %s\n",a,mystrcom(a,b)>0?"great than":"less than",b);
return 0;
}
4.
字符串的连接
#include<stdio.h>
char *mystrcat(char *p1,char *p2)
{
for(;*p1!='\0';)
{
p1++;
}
for(;*p2!='\0';)
{
*p1=*p2;
p1++;
p2++;
}
*p1='\0';
return p1;
}
int main(void)
{
char a[100],b[100];
printf("请输入第一个字符串:");
scanf("%s",a);
printf("请输入第二个字符串:");
scanf("%s",b);
mystrcat(a,b);
printf("%s\n",a);
return 0;
}
5.
求字符串的子串
#include <stdio.h>
#include <string.h>
int mystrstr(char *p1,char *p2)
{
int i=0,j;
for(;*p1!='\0';i++)
{
if(*p1==*p2)
{
j=1;
while(*++p1==*++p2&&*p2!='\0')
{
j++;
}
if(j==strlen(p2))
{
return i;
}
}
p1++;
}
return -1;
}
int main(void)
{
char a[100],b[100];
printf("请输入第一个字符串:");
scanf("%s",a);
printf("请输入第二个字符串:");
scanf("%s",b);
printf("%d\n",mystrstr(a,b));
return 0;
}
#include <stdio.h>
#include <string.h>
int mystrstr(char *p1,char *p2)
{
int i=0,j;
for(;*p1!='\0';i++)
{
if(*p1==*p2)
{
j=1;
while(*++p1==*++p2&&*p2!='\0')
{
j++;
}
if(j==strlen(p2))
{
return i;
}
}
p1++;
}
return -1;
}
int main(void)
{
char a[100],b[100];
printf("请输入第一个字符串:");
scanf("%s",a);
printf("请输入第二个字符串:");
scanf("%s",b);
printf("%d\n",mystrstr(a,b));
return 0;
}
6.
删除字符串首尾空白字符
#include <stdio.h>
#include <string.h>
int mytrim(char str[])
{
int i,num,j=0,k=0,l=strlen(str);
for(;str[j]==' '||str[j]=='\t'||str[j]=='\n'||str[j]=='\r';)
{
j++;
}
i=l-1;
for(;str[i-k]==' '||str[i-k]=='\t'||str[i-k]=='\n'||str[i-k]=='\r';)
{
k++;
}
num=l-j-k;
for(i=0;i<num;i++)
{
str[i]=str[i+j];
}
str[num]='\0';
return strlen(str);
}
int main(void)
{
char a[]=" kfjsljd ";
mytrim(a);
printf("%s\n",a);
return 0;
}
7.
从字符串中删除所有与给定字符相同的字符
#include <stdio.h>
void mydelete_c(char a[],char b)
{
int i=0,j=0;
while(a[i]!='\0')
{
if(a[i]!=b)
{
a[j]=a[i];
j++;
}
i++;
}
a[j]='\0';
}
int main(void)
{
char a[]="slkdfjskdfjfbbsfskdjfs443098sd",b='b';
mydelete_c(a,b);
printf("%s\n",a);
return 0;
}
8.
将字符串反转等函数
#include <string.h>
void myreverse(char a[])
{
int i=0,k=strlen(a);
char b;
while(i<=k/2-1)
{
b=a[i];
a[i]=a[k-i-1];
a[k-i-1]=b;
i++;
}
}
int main(void)
{
char a[]="abcde";
myreverse(a);
printf("%s\n",a);
return 0;
}