项目开发字符串模型strstr_while
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <string.h>
#include <stdio.h> void main71()
{
char a[] = "i am a student";
char b[64];
int i = 0; for (i=0; *(a+i) != '\0'; i++)
{
*(b+i) = *(a+i);
} //0没有copy到b的buf中. b[i] = '\0'; //重要
printf("a:%s \n", a);
printf("b:%s \n", b); system("pause");
return ;
} //字符串copy函数技术推演 //字符串copy函数 //form形参 形参to 的值 不停的在变化....
//不断的修改了from和to的指向
void copy_str21(char *from, char *to)
{
for (; *from!='\0'; from++, to++)
{
*to = *from;
}
*to = '\0'; return ;
} //*操作 和++的操作
//++ 优先级高
void copy_str22(char *from, char *to)
{
for (; *from!='\0';)
{
*to++ = *from++; // 先 *to = *from; 再from++, to++
}
*to = '\0'; // return ;
} void copy_str23(char *from, char *to)
{
while( (*to = *from) != '\0' )
{
from ++;
to ++;
}
} void copy_str24(char *from , char *to)
{
while ( (*to++ = *from++) != '\0')
{
;
}
} void copy_str25(char *from , char *to)
{
//*(0) = 'a';
while ( (*to++ = *from++) )
{
;
}
} void copy_str25_err(char *from , char *to)
{
//*(0) = 'a';
while ( (*to++ = *from++) )
{
;
} printf("from:%s \n", from); } //不要轻易改变形参的值, 要引入一个辅助的指针变量. 把形参给接过来.....
int copy_str26_good(char *from , char *to)
{
//*(0) = 'a';
char *tmpfrom = from;
char *tmpto = to;
if ( from == NULL || to == NULL)
{
return -1;
} while ( *tmpto++ = *tmpfrom++ ) ; //空语句 printf("from:%s \n", from); } int main111()
{
int ret = 0;
char *from = "abcd";
char buf2[100];
//copy_str21(from, buf2);
//copy_str22(from,buf2);
//copy_str23(from, buf2);
//copy_str24(from, buf2);
//copy_str25(from ,buf2);
//printf("buf2:%s \n", buf2); {
//错误案例
char *myto = NULL; //要分配内存
//copy_str25(from,myto );
}
{
char *myto = NULL; //要分配内存 ret = copy_str26_good(from, myto);
if (ret != 0)
{
printf("func copy_str26_good() err:%d ", ret);
return ret;
}
}
system("pause");
return ret;
} int main777()
{
int ret = 0;
char *from = "abcd";
char buf2[100]; printf("copy_str25_err begin\n");
copy_str25_err(from, buf2);
copy_str26_good(from, buf2);
printf("copy_str25_err end\n");
return 0;
}

项目开发字符串模型strstr_while的更多相关文章
- Android项目开发全程(四)-- 将网络返回的json字符串轻松转换成listview列表
前面几篇博文介绍了从项目搭建到获取网络字符串,对一个项目的前期整体工作进行了详细的介绍,本篇接着上篇介绍一下怎么样优雅将网络返回的json字符串轻松转换成listview列表. 先上图,看一下效果. ...
- Atitit 项目管理 提升开发效率的项目流程方法模型 哑铃型 橄榄型 直板型
Atitit 项目管理 提升开发效率的项目流程方法模型 哑铃型 橄榄型 直板型 项目主体三个部分 ui界面,中间层,数据库 按照不同的比重可以分为一下三个模型 哑铃型 橄榄型 直板型 哑铃型 开 ...
- 第八章 企业项目开发--分布式缓存memcached
注意:本节代码基于<第七章 企业项目开发--本地缓存guava cache> 1.本地缓存的问题 本地缓存速度一开始高于分布式缓存,但是随着其缓存数量的增加,所占内存越来越大,系统运行内存 ...
- 第十一章 企业项目开发--消息队列activemq
注意:本章代码基于 第十章 企业项目开发--分布式缓存Redis(2) 代码的github地址:https://github.com/zhaojigang/ssmm0 消息队列是分布式系统中实现RPC ...
- 项目实战:BBS+Blog项目开发
01-博客系统之功能需求 02-博客系统之表结构设计1 03-博客系统之表结构设计2 04-博客系统之表结构设计3 05-博客系统之表结构设计4 06-博客系统之表机构设计5 07-博客系统之创建系统 ...
- SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。
熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...
- Django学习笔记(19)——BBS+Blog项目开发(3)细节知识点补充
本文将BBS+Blog项目开发中所需要的细节知识点进行补充,其中内容包括KindEditor编辑器的使用,BeautifulSoup 模块及其防XSS攻击,Django中admin管理工具的使用,me ...
- Django项目开发,XSS攻击,图片防盗链,图片验证码,kindeditor编辑器
目录 一.Django项目开发 1. 项目开发流程 2. auth模块的补充 (1)django的admin可视化管理页面 (2)将admin可视化管理页面的模型表显示成中文 (3)auth模块的用户 ...
- 基于gin的golang web开发:模型验证
Gin除了模型绑定还提供了模型验证功能.你可以给字段指定特定的规则标签,如果一个字段用binding:"required"标签修饰,在绑定时该字段的值为空,那么将返回一个错误.开发 ...
随机推荐
- 《Win10——如何进入高级启动选项?》
Win10--如何进入高级启动选项? 第一种方法: 管理员命令提示符输入如下代码,自动重启并进入高级启动选项. shutdown /r /o /f /t 00 第二种方法: 1. ...
- java 打包部署(一) windows
- Grep 命令有什么用?如何忽略大小写?如何查找不含该串的行?
是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来. grep [stringSTRING] filename grep [^string] filename
- switch语句能否作用在byte上,能否作用在long上,能否作用在String上?
在Java 7以前,在switch(expr1)中,expr1只能是一个整数表达式(但不包括long和Long)或者枚举常量,整数表达式可以是int基本类型或Integer包装类型,byte.shor ...
- yarn上运行flink环境搭建
主要完成hadoop集群搭建和yarn上运行flink 1.搭建hadoop伪集群 主要是搭建hadoop MapReduce(yarn)和HDFS 1.1 下载&配置环境变量 这里下载的ha ...
- elasticsearch 是如何实现 master 选举的 ?
想了解 ES 集群的底层原理,不再只关注业务层面了. 前置前提: 1.只有候选主节点(master:true)的节点才能成为主节点. 2.最小主节点数(min_master_nodes)的目的是防止脑 ...
- 5. Git初始化及仓库创建和操作
4. Git初始化及仓库创建和操作 基本信息设置 1. 设置用户名 git config --global user.name 'itcastphpgit1' 2. 设置用户名邮箱 git confi ...
- carsim输入输出变量
来自:https://wenku.baidu.com/view/3405ded5443610661ed9ad51f01dc281e43a5673.html 输出量
- 使用 Vuex + Vue.js 构建单页应用
鉴于该篇文章阅读量大,回复的同学也挺多的,特地抽空写了一篇 vue2.0 下的 vuex 使用方法,传送门:使用 Vuex + Vue.js 构建单页应用[新篇] ------------------ ...
- 《深入理解ES6》笔记—— Promise与异步编程(11)
为什么要异步编程 我们在写前端代码时,经常会对dom做事件处理操作,比如点击.激活焦点.失去焦点等:再比如我们用ajax请求数据,使用回调函数获取返回值.这些都属于异步编程. 也许你已经大概知道Jav ...