由于经常被抓取文章内容,在此附上博客文章网址:,偶尔会更新某些出错的数据或文字,建议到我博客地址 :  --> 点击这里

strlen()

获取字符串长度,成功则返回字符串 string 的长度;如果 string 为空,则返回 0。

#include<stdio.h>
#include<stdlib.h>
#define N 1000
int count = ; int strlen(char *str)
{
int num = ; //定义一个计数器
while('\0' != *str++)
{
num++;
}
return num;
} void test(char *str)
{
printf("所要测试的字符串为: %s\n",str);
count = strlen(str); //调用函数
printf("所输入的字符串长度为:%d\n\n",count);
} void main()
{
char str1[] = "hello world!"; //这样的赋值方式会有在尾部自动一个'\0'
char *str2 = "hello world!"; //这样的赋值方式会有在尾部自动一个'\0'
char str3[] = "world hello!"; //这样的赋值方式会在剩余的位置全部自动添加'\0'
char str4[N] = {};
test(str1);
test(str2);
test(str3); printf("请输入所要测试的数组:\n");
gets(str4); //此函数会在最后添加NULL字符 即'\0'
test(str4);
system("pause");
}

strcpy()

head.h

#include<stdio.h>
#include<string.h>
#define N 100
void strcpy1(char *str_cpy, char const *str);

_strcpy().c

#include"head.h"

void strcpy1(char *str_cpy,char const *str)  //为了保证主数组的只读性,所以加"const"修饰
{
while(*str != '\0')
{
*str_cpy = *str ;
str_cpy ++;
str++;
}
*str_cpy = '\0'; //添加结束符
}

main.c

#include"head.h"

void main()
{
char str[N];
char str_cpy[N] ;
printf("请输入所要主字符串数组:\n");
scanf("%s",&str); strcpy1(str_cpy,str); //复制
printf("复制前的主字符串为的%s\n",str);
printf("复制后新字符串为的%s\n",str_cpy); getchar();
getchar();
}

explode()

#include<stdio.h>
#include<stdlib.h> #define N 50
char *ptr[] = {}; //定义指针数组,用来保存分割后的子串
char temp[N] = {}; //定义临时字符数组,用来临时保存分割后的子串 void explode(char *str,char c) //char c 类型用来保存分隔符
{
int i = ;
while((*str) != c)
{
temp[i] = *str; //指针中的字符串赋值给临时数组temp
str++;
i++;
}
str++; //此时 (*str) 是 分割符 c,自增1跳过分隔符
temp[i] = '\0'; //将分割的子串添加结束符号 '\0'
printf("%s\n",temp); //将分割后的子串打印出来
i = ; // 将i置零,方便下次使用临时数
while((*str) != '\0')
{ temp[i] = *str; //指针中的字符串赋值给临时数组temp
str++;
i++;
} str++; //此时 (*str) 是 结束符,自增1跳过结束符 temp[i] = '\0'; //将分割的子串添加结束符号 '\0' printf("%s\n",temp); //将分割后的子串打印出来 i = ; // 将i置零,方便下次使用临时数 return ;
} void main()
{
char *str = "hello,world!";
char b[N] = {} ; //用于保存用户所输入的数组
char c; //用于保存用户所输入的分割符 printf("下面用'hello,world!'作为示例,其中分割符为','\n");
printf("下面是使用分割函数explode(hello,world!,'c')的结果\n"); explode(str,','); //此函数不局限于 ',' 作为分隔符 ,可以用其他符号 printf("请输入只有两个子字符串的字符串:例如hello,world!\n");
scanf("%s",b);
printf("请输入你想用的分隔符:\n"); getchar(); //缓冲点回车键,不然会以回车键作为分隔符,程序崩溃
scanf("%c",&c); explode(b,c); //此函数不局限于 ',' 作为分隔符 ,可以用其他符号 system("pause");
}

php函数源代码 C编写 【持续更新】的更多相关文章

  1. # OpenGL常用函数详解(持续更新)

    OpenGL常用函数详解(持续更新) 初始化 void glutInit(int* argc,char** argv)初始化GULT库,对应main函数的两个参数 void gultInitWindo ...

  2. iOS --- 总结Objective-C中经常使用的宏定义(持续更新中)

    将iOS开发中经常使用的宏定义整理例如以下,仅包括Objective-C. 而对于Swift,不能使用宏,则能够定义全局函数或者extension.请參考博客iOS - 总结Swift中经常使用的全局 ...

  3. php常用函数(持续更新)

    每一种编程语言在用的过程中都会发现有时候要一种特定需求的功能函数,结果没有内置这样的函数,这个时候就需要自己根据已有函数编写尽可能简单的函数,下面是我在做php相关工作时积累下的函数,会持续更新,您要 ...

  4. 总结js常用函数和常用技巧(持续更新)

    学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...

  5. 【前端】Util.js-ES6实现的常用100多个javaScript简短函数封装合集(持续更新中)

    Util.js (持续更新中...) 项目地址: https://github.com/dragonir/Util.js 项目描述 Util.js 是对常用函数的封装,方便在实际项目中使用,主要内容包 ...

  6. 好用的函数,assert,random.sample,seaborn tsplot, tensorflow.python.platform flags 等,持续更新

    python 中好用的函数,random.sample等,持续更新 random.sample random.sample的函数原型为:random.sample(sequence, k),从指定序列 ...

  7. pytorch常用函数总结(持续更新)

    pytorch常用函数总结(持续更新) torch.max(input,dim) 求取指定维度上的最大值,,返回输入张量给定维度上每行的最大值,并同时返回每个最大值的位置索引.比如: demo.sha ...

  8. BAT 前端开发面经 —— 吐血总结 前端相关片段整理——持续更新 前端基础精简总结 Web Storage You don't know js

    BAT 前端开发面经 —— 吐血总结   目录 1. Tencent 2. 阿里 3. 百度 更好阅读,请移步这里 聊之前 最近暑期实习招聘已经开始,个人目前参加了阿里的内推及腾讯和百度的实习生招聘, ...

  9. 值得学习的C/C++开源项目 持续更新

    值得学习的C语言开源项目 持续更新 文章目录 值得学习的C语言开源项目 持续更新 - 1. Webbench - 2. Tinyhttpd - 3. cJSON - 4. CMockery - 5. ...

随机推荐

  1. Ubuntu12.04编译vlc-android详细流程

    作者:wainiwann 出处:http://www.cnblogs.com/wainiwann/ 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则 ...

  2. Python运维开发基础04-语法基础

    上节作业回顾(讲解+温习90分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen # 仅用列表+循环实现"简单 ...

  3. better-scroll的用法,及其中的一个属性event._constructed详解

    better-scroll是一个页面滚动插件,用它可以很方便的实现下拉刷新,锚点滚动等功能. 实现原理:父容器固定高度,并设置overflow:hidden,子元素超出父元素高度后将被隐藏,超出部分可 ...

  4. Linux下Thunderbird要安装的插件

    网络时代,总少不了跟邮件打交道,日常生活使用时多数是直接用网页版邮箱,在职场中一般要求用邮件客户端.使用Windows的朋友一般要么用Outlook,要么用Foxmail,其实,我们还有一个很不错的选 ...

  5. 8-matlab-gui-显示图片有坐标刻度问题

    在图片上显示图片时,总是有图片,一遍做法是使得刻度为空就可了: 在你的每一个axes的CreateFcn函数中添加一下代码即可:set(hObject,'xTick',[]);set(hObject, ...

  6. js获得URL中的参数

    js获得URL中的参数 function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + &quo ...

  7. 如何在centos环境下搭建java环境

    在CentOS上安装Java环境:[1]使用yum安装java 现阶段做企业级项目开发一般都采用Java语言.开发的项目需要放在服务器上运行测试,若以CentOS系统为服务器系统,首先要解决就是Cen ...

  8. alter table导致的mysql事务回滚失败

    今天做数据迁移, 发现事务有时候可以回滚, 有时候不可以回滚, 最后一点点调试发现中间有段修改表结构的语句, 最终导致回滚失败. 1.MySQL最常用的两个表类型: InnoDB和MyISAM.MyI ...

  9. Gym 101201H Paint (离散化+DP)

    题意:给定 n 个区间,让你选出一些,使得每个选出区间不交叉,并且覆盖区间最大. 析:最容易想到的先是离散化,然后最先想到的就是 O(n^2)的复杂度,dp[i] = max(dp[j] + a[i] ...

  10. arean.c

    glibc-2.14中的arean.c源代码,供研究malloc和free实现使用: /* Malloc implementation for multiple threads without loc ...