C语言 字符串操作两头堵模型
//字符串操作两头堵模型练习 #define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h> //去除字符串中的空格
//const char *pin的解释:const char *pin是用来限制指针pin指向的数据是个常量,不允许修改,
//但是并不限制实参指针指向的数据也必须是一个常量
//这是为了防止传过来的参数pin所指向的数据不可以修改,但是却在函数里做了修改,导致程序报错,这是一种标准的写法
int removespace(const char *pin,char *pout){
int ERRO_MSG = ;
//验证传入参数是否为空
if (pin == NULL || pout==NULL)
{
ERRO_MSG = ;
printf("pin == NULL || pout==NULL erro msg key:%d\n", ERRO_MSG);
return ERRO_MSG;
}
//两头堵模型就是要准备两个辅助指针,一个在头部,一个在尾部
int i = , j = ;
//定义不是空格的字符的个数
int index = ;
//不清楚具体循环次数,一般使用while或者do...while...
//i从头开始
//注意:pin[i]==" "这么些是错误的," "是字符串(2个字符,'\0'也算一个),pin[1]是一个char类型
while (pin[i] != '\0'&&pin[i]==' '){
i++;
}
j = strlen(pin);
//j从尾部开始
while (pin[j] != '\0'&&pin[i] ==' '){
j--;
}
index = j - i + 1; //例如 "ab" a的位置是0,b的位置是1,则1-0=1,实际字符个数是2
//拷贝字符串
strncpy(pout, pin + i, index);
return ERRO_MSG;
} void main(){
char buf2[] = " adfr ";
//这里两种分配字符串的方式
//方式一(推荐)
char buf[] = { };
//方式二(第二种方式,并没有初始化分配的内存,因此需要在函数中将p1指向的内存的数据初始化为'\0')
char *p1 =(char *)malloc(sizeof(char)* );
//初始化p1
memset(p1, , sizeof(p1));
//注意:memset()相比于char buf[20] = { 0 };这种方式要消耗更多的资源
removespace(buf2, buf);
//malloc分配的内存必须回收
free(p1);
printf("%s\n", buf);
system("pause");
}

//字符串操作两头堵模型练习 #define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h> //字符串反转
int reversestr(const char *pin,char *pout){//pin是形参,一个临时变量,pin的值发生变化,不会影响实参p的值
//定义返回key
int ERRO_MSG = ;
//形参非空校验
if (pin == NULL || pout==NULL)
{
ERRO_MSG = ;
printf("pin == NULL || pout==NULL erro msg key:%d\n", ERRO_MSG);
return ERRO_MSG;
}
//两头堵模型
int i = , j = strlen(pin)-;//p[5]是'\0'
while (j >= i){
//将字符一个个填入字符数组里
*pout++ = pin[j--];
}
return ERRO_MSG;
} void main(){
char *p = "abcde";
char strarr[] = { };
reversestr(p, strarr);
printf("%s\n", strarr);
system("pause");
}

C语言 字符串操作两头堵模型的更多相关文章
- C语言字符串操作总结大全(超详细)
本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat( ...
- C语言字符串操作常用库函数
C语言字符串操作常用库函数 *********************************************************************************** 函数 ...
- c语言字符串操作大全
C语言字符串操作函数 函数名: strcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #incl ...
- 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...
- C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
原文:http://www.cnblogs.com/JCSU/articles/1305401.html C语言字符串操作函数 1. 字符串反转 - strRev2. 字符串复制 - strcpy3. ...
- 零基础学习C语言字符串操作总结大全
本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, ...
- C语言 字符串操作 笔记
/* C语言字符串的操作笔记 使用代码和注释结合方式记录 */ # include <stdio.h> # include <string.h> int main(void) ...
- 6. Go语言—字符串操作
一.字符串支持的转义字符 \r 回车符(返回行首) \n 换行符(直接跳到下一行的同列位置) \t 制表符 \' 单引号 \" 双引号 \\ 反斜杠 \uXXXX Unicode字符码值转义 ...
- C语言字符串操作总结大全
1)字符串操作 strcpy(p, p1) 复制字符串 函数原型strncpy(p, p1, n) 复制指定长度字符串 函数原型strcat(p, p1) 附加字符串 函数原型strn ...
随机推荐
- 消除 activity 启动时白屏、黑屏问题
默认情况下 activity 启动的时候先把屏幕刷成白色,再绘制界面,绘制界面或多或少有点延迟,这段时间中你看到的就是白屏,显然影响用户体验,怎么消除呢? 在 Activity theme 设置sty ...
- Android 在内部存储读写文件
文件读写操作* Ram内存:运行内存,相当于电脑的内存* Rom内存:内部存储空间,相当于电脑的硬盘* sd卡:外部存储空间,相当于电脑的移动硬盘在内部存储空间中读写文件>小案例:用户输入账号密 ...
- JSP page指令详解
JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言. 语法格式如下: <%@ directive attribute="value" %> 指令可以 ...
- 关于android初学者必须掌握的Activity的四大知识点
这几天一直都在捣鼓android的知识点,兴趣班的老师,讲课太过深奥,天(想到什么就见什么,后后面完全不想听),最后自己找资料总结了在Android学习中很重要的一个组件Activity,那就开始吧! ...
- spring和mybatis整合配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- OC正则表达式的使用
OC中一般正则表达式的使用方法为2步 1.创建一个正则表达式对象 2.利用正则表达式来测试对应的字符串 例如 NSString *checkString = @"a34sd231" ...
- 启动app时全屏显示Default.png
一直很喜欢MJ的讲课视频,今天看了他的博客学到了些东西顺便记录下来. 在默认情况下,app显示Default.png时并非真正的"全屏显示",因为顶部的状态栏并没有被隐藏,比如下面 ...
- Monyer's game Google Hack关的BT玩法
玩Monyer's game的朋友都知道里面有Google Hack这关,其实这里本来应该用到的技术是逆向回溯搜索,但因为有好几个人都说利用其他方式看到的密码,所以Monyer不得不重新站在玩家的角度 ...
- centos7 拨号之后添加路由
问题:拨号主机再自动拨号(/sbin/ifdown ppp0;/sbin/ifup ppp0)之后,无法上网(没有添加路由) 思路:在拨号程序中添加路由代码 vim /sbin/ifup { slee ...
- subline 快捷键
subline 快捷键 安装 pretty css html 后1,CTRl+ shift +H 格式化代码