1.strlen

法一:常规法

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#define N 100int my_strlen(const char*str)
{assert(str != NULL);int count = 0;while (*str != '\0'){str++;count++;}return count;
}
int main()
{char str[N] = "LoveHoneyYou";int len=my_strlen(str);printf("%d\n", len);system("pause");return 0;
}

法二: 指针相减

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#define N 100int my_strlen(const char*str)
{assert(str != NULL);char *cp = str;while (*cp != '\0'){cp++;}return (int)(cp-str);
}
int main()
{char str[N] = "LoveHoneyYou";int len=my_strlen(str);printf("%d\n", len);system("pause");return 0;
}

2.strcpy

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#define N 100void my_strcpy(char *dest, char *src)
{while (*src != '\0'){*dest++ = *src++;}*dest = *src;
}int main()
{char stra[N] = "LoveHoneyYou";char strb[N] = "Love dearest you";my_strcpy(stra, strb);printf(stra);printf("\n");system("pause");return 0;
}

3.strcat

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#define N 100void my_strcat(char *dest, char *src)
{char*cp = dest;while (*cp!= '\0'){cp++;}while (*src!='\0'){*cp++ = *src++;}*cp = *src;
}int main()
{char stra[N] = "Love Honey You ";char strb[N] = "My dear friend";my_strcat(stra, strb);printf(stra);printf("\n");system("pause");return 0;
}

4.strcmp

#include <stdio.h>
#include <stdlib.h>
#define N 100
int my_strcmp(char *dest, char *src)
{while (*dest != '\0' || *src != '\0'){if (*dest == *src){dest++;src++;}else if (*dest < *src){return -1;}else{return 1;}}return 0;
}
int main()
{char stra[N] = "I Love You ";char strb[N] = "You Love Me ";int ret = my_strcmp(stra, strb);printf("ret=%d\n", ret);system("pause");return 0;
}

5.strchr //字符的首次出现

#include <stdio.h>
#include <stdlib.h>
#define N 100
char* my_strchr(char *str, char ch)
{while (*str != '\0'){if (*str == ch){break;}str++;}return str;
}
int main()
{char stra[N] = "I Love You ";char*ch = my_strchr(stra, 'Y');printf("%c \n", *ch);system("pause");return 0;
}

6.strrchr  //字符最后一次出现

#include <stdio.h>
#include <stdlib.h>
#define N 100
char* my_strrchr(char *str, char ch)
{char*cp = str;while (*cp != '\0'){cp++;}cp = cp - 1;while (cp != str - 1){if (*cp == ch){return cp;}cp--;}return NULL;
}
int main()
{char stra[N] = "I Love You ";char*ch = my_strrchr(stra, '0');system("pause");return 0;
}

7.strstr    //查找字串   (爸爸找儿子)

(1) 使用三个变量

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 100void my_strstr(char* father, char *son)
{int len_Fa = strlen(father);  //父串长度int len_So = strlen(son);     //字串长度int tmp = 0;for (int i = 0; i < len_Fa - len_So+1; i++){int sign = i;for (int j = 0; j < len_So; j++){if (father[sign] != son[j]){break;}tmp = j;sign++;}if (tmp == len_So - 1){printf("找到了,是爸爸的好儿子\n");break;}if (i == len_Fa - len_So + 1-1){printf("找不到,不是爸爸的好儿子\n");}}
}int main()
{char arr[N] = "ddsadabsdasd";char brr[N] = "abs";my_strstr(arr, brr);system("pause");return 0;
}

(2)不使用第三个变量

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 100void my_strstr(char* father, char *son)
{int len_Fa = strlen(father);  //父串长度int len_So = strlen(son);     //字串长度int tmp = 0;for (int i = 0; i < len_Fa - len_So+1; i++){for (int j = 0; j < len_So; j++){if (father[i+j] != son[j]){break;}tmp = j;}if (tmp == len_So - 1){printf("找到了,是爸爸的好儿子\n");break;}if (i == len_Fa - len_So + 1-1){printf("找不到,不是爸爸的好儿子\n");}}
}int main()
{char arr[N] = "ddsadabsdasdsfhsdkjfhkdshfh";char brr[N] = "fhsdk";my_strstr(arr, brr);system("pause");return 0;
}

C语言练习6---字符串函数实现相关推荐

  1. C语言常用的字符串函数

    C语言常用的字符串函数 以下函数都在头文件 string.h 中 (1)strcpy()字符串复制函数 函数原型:char *strcpy(char *d ,char *s) 功能:复制字符串s到字符 ...

  2. C语言试题六十二之请编写函数fun除了字符串前导和尾部的*号之外,将串中其他*号全部删除。形参h已指向字符串第一个字母,形参p已指向字符串中最后一个字母。在编写程序时,不得使用c语言提供的字符串函数。

    1. 题目 请编写函数fun除了字符串前导和尾部的*号之外,将串中其他*号全部删除.形参h已指向字符串第一个字母,形参p已指向字符串中最后一个字母.在编写程序时,不得使用c语言提供的字符串函数. 比如 ...

  3. C语言试题五十七之假定输入的字符串中只包含字母和*号。请编写函数function,它的功能是:删除字符串中所有*号。在编写函数时,不得使用c语言提供的字符串函数。

    1. 题目 假定输入的字符串中只包含字母和*号.请编写函数function,它的功能是:删除字符串中所有*号.在编写函数时,不得使用c语言提供的字符串函数. 2 .温馨提示 C语言试题汇总里可用于计算 ...

  4. 87.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。

    87.假定输入的字符串中只包含字母和号.请编写函数fun,它的功能是:除了字符串前导的号之外,将串中其他*号全部删除.在编写函数时,不得使用C语言提供的字符串函数. 例如,若字符串中的内容为****A ...

  5. 66.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:删除字符串中所有的*号。在编写函数时,不得使用C语言提供的字符串函数。

    66.假定输入的字符串中只包含字母和号.请编写函数fun,它的功能是:删除字符串中所有的号.在编写函数时,不得使用C语言提供的字符串函数. 例如,若字符串中的内容为****A*BC*DEFG***** ...

  6. c语言中存储字符用什么函数,那些C语言中你不知道的字符串函数(坑)

    1.strcpy() 在字符串拷贝函数中,它的函数编写不难,如下 char* Strcpy(char* dest, const char* src) { assert(dest != NULL &am ...

  7. java实现c语言的函数_C语言实现返回字符串函数的四种方法

    前言 C语言返回字符串函数共有四种方式,分别如下: 使用堆空间,返回申请的堆地址,注意释放 函数参数传递指针,返回该指针 返回函数内定义的静态变量(共享) 返回全局变量 下面来看看详细的介绍 其实就是 ...

  8. C语言进阶 之 字符串函数(4)

    C语言中对字符和字符串的处理是很频繁,但是C 语言本身是没有字符串类型的,字符串通常放在 常量字符串 中 或者 字符数组中.字符串常量 适用于那些对它不做修改的字符串函数. 函数介绍 strlen s ...

  9. 【C语言进阶】字符串函数模拟实现

    求字符串长度 strlen size_t strlen(const char*string); 头文件:<string.h> 功能: 计算字符串的长度,遇到'\0'便停止,统计'\0'之前 ...

  10. oc语言常用的字符串函数

    #import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {@autoreleasepool {/* ...

最新文章

  1. Protractor测试环境搭建
  2. android程序贴吧,【Android 教程总结贴】归纳所有android贴
  3. css定位页面元素,页面元素定位-CSS元素基本定位
  4. 【AI-1000问】机器学习和模式识别是什么关系?
  5. birt脚本for循环语句_Python初级教程(11): for循环语句
  6. 尝鲜体验 VS Code Python 原生 Jupyter Notebook 支持
  7. ScrollView嵌套ViewPager,ViewPage动态设置高度,嵌套事件冲突——滑动冲突解决方法
  8. STM32之通用定时器编码器模式
  9. UI设计灵感|高级黑网页首图就该这样设计
  10. js foreach用法_36 个JS 面试题为你助力金九银十(面试必读)
  11. Tuxedo中间件常用命令
  12. 制作 jvm 火焰图
  13. 英伟达显卡虚拟化vGPU实践指南
  14. visa支付—Springboot
  15. cc2530:<3>ADC采集光照度案例
  16. 解决Office安装错误代码1024:安装程序无法打开注册表项UNKNOWN\Components\
  17. 深度学习基础-损失函数详解
  18. deepin网速慢 自己摸索 已解决
  19. 百度名词~杂篇--(对日常遇到事物的深入了解)
  20. js数组遍历常用方法 0802二

热门文章

  1. 数学和物理成绩不突出可以学计算机吗,高考数学成绩差,这8个专业不建议报考,学起来会很吃力...
  2. JavaScript 霸榜!TensorFlow火热!GitHub 2017 年度报告,你擅长的技术快被淘汰了!
  3. Windows10创建局域网无密码的文件共享
  4. 搭建FPGA SOC系统(3)编译u-boot
  5. Android 开发之旅:短信的收发及在android模拟器之间实践(一)
  6. 提案探索(1):Improvements for HEVC rate controlRate Control for VVC
  7. Flask 入门整理笔记
  8. 防火墙导致电脑不能相互访问
  9. 善用 Web 调试代理工具
  10. 使用简易网络实现二分类