作业一:实现strlen功能
#include <stdio.h>
int main(int argc, const char *argv[])
{
printf("请输入一个字符串:\n");
char data[100]="";
gets(data);
printf("字符串的长度是:%d\n",strlen(data));
return 0;
}
int strlen(const char* data){
int length=0;
while(*data){
length++;
data++;
}
return length;
}
作业二:实现strcpy功能
#include <stdio.h>
int main(int argc, const char *argv[])
{
printf("请输入一个字符串:\n");
char src[100]="";
char dest[100]="";
gets(src);
strcpy(dest,src);
puts(dest);
return 0;
}
char *strcpy(char *dest,const char* src){
char *p=dest;
while(*src){
*dest=*src;
src++;
dest++;
}
*dest='\0';
return p;
}
作业三:实现strcat功能;
#include <stdio.h>
int main(int argc, const char *argv[])
{
printf("请输入一个字符串:\n");
char src[100]="";
char dest[100]="";
gets(src);
printf("请输入第二个字符串:\n");
gets(dest);
strcat(dest,src);
puts(dest);
return 0;
}
char *strcpy(char *dest,const char* src){
char *p=dest;
while(*dest){
dest++;
}
while(*src){
*dest=*src;
src++;
dest++;
}
*dest='\0';
return p;
}
作业四:实现strcmp功能;
#include <stdio.h>
int main(int argc, const char *argv[])
{
printf("请输入一个字符串:\n");
char src[100]="";
char dest[100]="";
gets(src);
printf("请输入第二个字符串:\n");
gets(dest);
if(strcmp(src,dest)>0){
printf("第一个字符串大\n");
}else if(strcmp(src,dest)<0){
printf("第二个字符串大\n");
}else{
printf("两个字符串相等\n");
}
return 0;
}
int *strcmp(const char *s1,const char* s2){
while(*s1){
if(*s1>*s2||*s1<*s2){
return *s1-*s2;
}
s1++;
s2++;
}
if(*s1==*s2){
return 0;
}
}
作业五:自定义函数(my_strstr)实现求src字符串中是否包含子串dest字符串
#include <stdio.h>
int main(int argc, const char *argv[])
{
printf("请输入一个字符串:\n");
char src[100]="";
char dest[100]="";
gets(src);
printf("请输入第二个字符串:\n");
gets(dest);
if(strstr(src,dest)==1){
printf("包含\n");
}else{
printf("不包含\n");
}
return 0;
}
int strstr(const char *s1,const char* s2){
char* p=s1; #定义两个指针变量代替 s1和s2
char* q=s2;
while(*s1){ #如果s1走到最后就结束
if(*s1==*q){ #判断双方第一个字母是否相同
while(*q){ #判断q是否走到最后
if(*p!=*q){ #有一个字母不相同 直接结束循环
break;
}
p++; #相同双方就继续往后走
q++;
}
if(*q=='\0'){ #判断上面的比较q是否走到最后 如果走到最后 则包含
return 1;
}
}
s1++; #到这就是s1当前字母后面不相同 ++ 走到下一个字符开始比较
p=s1; #p和q也要回归到开头
q=s2;
}
return 0;
}