1,使用指针实现字符串拷贝
#include<stdio.h>
int My_strlen(char* str)
{
char *p=str;
while(*p!='\0')
{
p++;
}
return p-str;
}
char* My_strcpy(char* str1,char* str2)
{
int i,j=0,k=My_strlen(str2);
for(i=0;i<k;i++)
{
*(str1+i)=*(str2+j);
j++;
}
*(str1+k)='\0';
return str1;
}
int main()
{
char str1[]="jkfdsj";
char str2[]="asx";
puts(My_strcpy(str1,str2));
return 0;
}
结果为:
2.使用指针实现字符串比较
#include<stdio.h>
int my_strlen(char* str)
{
char *p=str;
while(*p!='\0')
{
p++;
}
return p-str;
}
int My_strcmp(char *str1,char *str2)
{
int i,t;
for(i=0;i<=my_strlen(str1);i++)
{
if(*(str1+i)==*(str2+i))
t=0;
else if(*(str1+i)!=*(str2+i))
{
t=*(str1+i)-*(str2+i);
break;
}
}
return t;
}
int main()
{
char str1[]="abcdr";
char str2[]="abcd";
int t=My_strcmp(str1,str2);
if(t==0)
printf("两个字符串一样\n");
else if(t>0)
printf("str1字符串比str2大\n");
else
printf("str2字符串比str1大\n");
return 0;
}
结果为:
3.使用指针实现计算单词的个数,返回单词的个数
#include<stdio.h>
#include<string.h>
int StrNum(char *str)
{
char *ch=" ";
char *p=NULL;
int count=0;
for(p=strtok(str,ch);p!=NULL;p=strtok(NULL,ch))
{
count++;
}
return count;
}
int main()
{
char str[]="hello my student";
printf("单词个数为%d\n",StrNum(str));
return 0;
}
结果为: