#写函数原型

1.#include <stdio.h>
#include <assert.h>
size_t mystrlen(const char s){
assert(s!=NULL);
size_t len = 0;
for(;
(s+len)!=’\0’;len++);
return len;
}
int main(){
char *p = “Hello world!\n”;
printf("%u\n",mystrlen§);
return 0;
}

2.#include <stdio.h>
#include <assert.h>
char *mystrcpy3(char *dest,const char *src){
assert(dest!=NULL && src!=NULL);
char *pdest = dest;
while((*dest++ = *src++) != ‘\0’);
return pdest;
}
int main(){
char s1[] = “Hello world”;
char s2[40] = “thanks how old are you”;
printf("%s\n",mystrcpy3(s2,s1));
printf("%s\n",s2);
return 0;
}

3.#include <stdio.h>
#include <assert.h>
char *mystrncpy2(char *dest,const char *src,size_t n){
assert(dest!=NULL && src!=NULL);
char *pdest = dest;
while(n-- > 0 && (*dest++ = *src++)!=’\0’);
return pdest;
}
int main(){
char str1[10] = “Hello xxx”;
char str2[10] = “world”;
mystrncpy2(str1,str2,6);
printf("%s\n",str1);
return 0;
}

4.#include <stdio.h>
#include <assert.h>
char *mystrcat1(char *dest,const char *src){
assert(dest!=NULL && src!=NULL);
char *pdest = dest;
while(*dest!=’\0’){
++dest;
}
while((*dest++ = *src++) != ‘\0’);
return pdest;
}
int main(){
char str1[100] = “Hello “;
char str2[100] = “world!”;
printf(”%s\n”,mystrcat1(str1,str2));
return 0;
}

5.#include <stdio.h>
#include <assert.h>
char *mystrncat2(char *dest,const char *src,size_t n){
assert(dest!=NULL && src!=NULL);
char *pdest = dest;
while(*dest != ‘\0’){
++dest;
}
while(n–>0 && ((*dest++)=(*src++))!=’\0’);
*dest = ‘\0’;
return pdest;
}
int main(){
char str1[100] = “Hello “;
char str2[100] = “world ! hello python”;
printf(”%s\n”,mystrncat2(str1,str2,10));
return 0;
}

6.#include <stdio.h>
#include <assert.h>
int mystrcmp(const char *s1,const char *s2){
assert(s1!=NULL && s2!=NULL);
while(*s1!=’\0’ && *s2 !=’\0’ && *s1 == *s2){
++s1;
++s2;
}
return *s1-*s2;
}
int main(){
printf("%d\n",mystrcmp(“Hello”,“Hello”));
printf("%d\n",mystrcmp(“hello”,“helloadasf”));
return 0;
}

7.#include <stdio.h>
#include <assert.h>
int mystrncmp(const char *s1,const char *s2,size_t n){
assert(s1!=NULL && s2!=NULL);
//剩下最后一个字符 直接比较 就不需要循环了
while(n–>1 && *s1!=’\0’&&*s2!=’\0’&&*s1==*s2){
s1++;
s2++;
}
return *s1-*s2;
}
int main(){
char str1[100] = “admin”;
char str2[100] = “admin123”;
printf("%d\n",mystrncmp(str1,str2,4));
return 0;
}

8.#include <stdio.h>
#include <assert.h>

void *mymemcpy(void *dest,const void *src,size_t n){
assert(dest!=NULL && src!=NULL);
char *pdest = dest;
const char *psrc = src;
//while(n–>0 && *pdest++ = *psrc++);
while(n > 0){
*pdest++ = *psrc++;
–n;
}
return dest;
}
int main(){
double arr[] = {1,3.11,5.77,3.678,2.996};
double brr[5] = {};
mymemcpy(brr,arr,sizeof(arr));
int i = 0;
for(i=0;i<5;i++){
printf("%g “,brr[i]);
}
printf(”\n");
return 0;
}

胡图图想学c语言之字符串函数原型相关推荐

  1. 【C语言】字符串函数详解

    hello~~,我是~小鹿 ,这是我的第一篇博客,没有循序渐进从基础开始写,只是最近在学习这里就写了,比较随心吧.希望这一篇博客能够给你带来帮助,之后也会继续写的,只是可能没有循序渐进,会比较杂七杂八 ...

  2. C语言常用字符串函数strlen、strcpy、strcat、strcmp、strchr

    C语言常用字符串函数,求串长strlen(char *s).串复制strcpy(char *s1,char *s2).串连接strcat(char *s1,char *s2).串比较strcmp(ch ...

  3. 零基础学C语言设计难吗,【经验分享】零基础想学C语言,过来人提醒大家几点...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 首先告诉你的是,零基础学习开始学习C语言/C++肯定难,C语言的专业程度本身就不简单,学习这事本来就是一件非常煎熬的事情,人都不愿意学习,可是没办法,为了 ...

  4. 想学C语言,跟着一个大佬一步步来,后来点错了一步,就一步错,步步错了。该怎么办呢?

    大一.大二的新生怎么学C语言呢?作为学长,我简单把我的想法说一下吧. 1. 自学才是硬道理.强大的自学能力是独自解决问题能力的根本,程序员需要拥有强大的独自解决问题的能力. 2. 入门阶段,codin ...

  5. C语言常用字符串函数——头文件 <string.h> 到底有什么?

    1. strlen -- 求字符串长度 1.1 strlen 的声明与用处 strlen ,我们有一些英语基础的话不难通过字面意思来知道这个函数是干嘛用的,str 表 string ,字符串的意思,l ...

  6. C语言常见字符串函数、字符分类函数与内存函数的使用

    前言 C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在 常量字符串 中或者 字符数组 中.下面介绍C语言中的一些常用的字符串函数和内存函数的功能以及实现原理. 字 ...

  7. c++语言转换为字符串函数,C++字符编码转换函数

    1.MultiByteToWideChar 函数功能:该函数映射一个字符串到一个宽字符(unicode)的字符串.由该函数映射的字符串没必要是多 字节字符组. 函数原型: int MultiByteT ...

  8. 超详细C语言的字符串函数讲解

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

  9. 【C语言】字符串函数strtok 按照指定字符串分割

    C语言字符串函数 strtok() 函数原型 char *strtok(char *str,const char *delimiters); 参数 str,待分割的字符串 delimiters,分隔符 ...

最新文章

  1. MaxCompute的任务状态和多任务执行
  2. NLP 笔记:Skip-gram
  3. C++中函数的默认参数
  4. VTK:PolyData之LoopBooleanPolyDataFilter
  5. Oracle 9i DBA Fundamentals I学习笔记(六)
  6. myeclipse 中解决Hibernate 和Struts 2的冲突
  7. windowfullscreen后键盘布局顶上去_什么才是第一生产力-2.4G高斯83G双模机械键盘终入囊...
  8. 在 .NET 中设置页面元素的 javascript 事件 - IEBrowser [5]
  9. 冒泡排序java jsp_冒泡排序实现原理
  10. 【分步入门指南】如何在10分钟内设置EOS钱包和帐户
  11. python 因果推断_Causal inference (因果推断)
  12. 软件企业研发人员激励机制研究
  13. 请说一下你是如何理解互联网思维的?
  14. SQL AlawaysOn 之四:故障转移集群
  15. 线性代数1:向量、线性组合、张成的空间和基
  16. PPT制作技巧汇总之动画设置与播放(office 2007)
  17. 中信银行总行信息科技岗(成都)2020届校招/秋招面经+薪资待遇(更新完,已offer)
  18. 数字图像处理:什么是数字图像(一)
  19. 美年旅游_跟团游_编辑跟团游
  20. verilog实现有符号数求绝对值

热门文章

  1. 日常交际技巧经验总结100句(大全)
  2. 从番茄花园想到的。。。。
  3. 堪称范本!腾讯运维转型之 SRE 体系建设
  4. pkill mysql_linux命令总结--pkill
  5. 7.19多态-学习笔记
  6. 《大象—thinking in UML》
  7. sort与结构体中的运算符重载
  8. 自然语言处理-应用场景-文本生成:Seq2Seq --> 看图说话【将一张图片转为一段文本】
  9. React百度地图开发
  10. 缺少linux内核,Linux内核态缺页会发生什么?一文玩转Exception fixup表