作业1
题目:
size_t strlen(const char *s);
结果:
代码:
#include <stdio.h>
size_t my_strlen(const char *s){
int i;
for (i = 0; s[i] != 0 ; i++);
return i;
}
int main(int argc, char const *argv[])
{
char str[] = "hello world!";
printf("len = %ld\n",my_strlen(str));
return 0;
}
作业2
题目:
int strcmp(const char *s1, const char *s2);
结果:
代码:
#include <stdio.h>
int my_strcmp(const char *s1, const char *s2){
int len1,len2;
for (len1 = 0; s1[len1] != '\0'; len1++);
for (len2 = 0; s2[len2] != '\0'; len2++);
//判断s1,s2长度
if(len1 > len2){
return 1;
}else if(len1 < len2){
return -1;
}
// 长度相等,按字符判断
for (int i = 0; i < len1; i++){
if(s1[i]>s2[i]){
return 1;
}else if(s1[i]<s2[i]){
return -1;
}
}
return 0;
}
int main(int argc, char const *argv[])
{
char str1[] = "123467";
char str2[] = "123468";
switch (my_strcmp(str1,str2)){
case 1:
printf("str1大\n");
break;
case -1:
printf("str2大\n");
break;
case 0:
printf("相等\n");
break;
}
return 0;
}
作业3
题目:
char *strcat(char *dest, const char *src);
结果:
代码:
#include <stdio.h>
char * my_strcat(char *dest,const char *src){
int len1,len2;
char *p;
for (len1 = 0; dest[len1] != '\0' ; len1++);
for (len2 = 0; src[len2] != '\0' ; len2++);
//dest的\0开始修改
p = dest + len1;
for (int i = 0; i < len2; i++){
*p++ = src[i];
}
return dest;
}
int main(int argc, char const *argv[])
{
char str1[20] = "hello";
char str2[20] = "world";
printf("str1 = %s\n",my_strcat(str1,str2));
}
作业4
题目:
char *strcpy(char *dest, const char *src);
结果:
代码:
#include <stdio.h>
char * my_strcpy(char *dest, const char *src){
int len;
char *p = dest;
for (len = 0; src[len] != '\0' ; len++);
// 从头开始修改
for (int i = 0; i < len; i++){
*p++ = src[i];
}
return dest;
}
int main(int argc, char const *argv[])
{
char str1[20] = "test";
char str2[20] = "hello world!";
printf("str1 = %s\n",my_strcpy(str1,str2));
return 0;
}