C语言代码段:Replace函数和逐行读取文本文件
来源:互联网 发布:日本柠檬tv网络电视 编辑:程序博客网 时间:2024/05/20 13:07
C语言中的字符串替换Replace函数char *replace(char *source, char *sub, char *rep)
{
char *result;
/*pc1 是复制到结果result的扫描指针*/
/*pc2 是扫描 source 的辅助指针*/
/*pc3 寻找子串时,为检查变化中的source是否与子串相等,是指向sub的扫描指针 */
/*找到匹配后,为了复制到结果串,是指向rep的扫描指针*/
char *pc1, *pc2, *pc3;
int isource, isub, irep;
isub = strlen(sub); /*对比字符串的长度*/
irep = strlen(rep); /*替换字符串的长度*/
isource= strlen(source); /*源字符串的长度*/
if(NULL == *sub)
return strdup(source);
/*申请结果串需要的空间*/
result = (char *)malloc(( (irep > isub) ? (float)strlen(source) / isub* irep+ 1:isource ) * sizeof(char));
pc1 = result; /*为pc1依次复制结果串的每个字节作准备*/
while(*source != NULL)
{
/*为检查source与sub是否相等作准备,为pc2,pc3 赋初值*/
pc2 = source;
pc3 = sub;
/* 出循环的(任一)条件是:
* *pc2 不等于 *pc3 (与子串不相等)
* pc2 到源串结尾
* pc3 到源串结尾 (此时,检查了全部子串,source处与sub相等)
*****************************************************/
while(*pc2 == *pc3 && *pc3 != NULL && *pc2 != NULL)
{
pc2++;
pc3++; }
/* 如果找到了子串,进行以下处理工作*/
if(NULL == *pc3)
{
pc3 = rep;
/*将替代串追加到结果串*/
while(*pc3 != NULL)
*pc1++ = *pc3++;
pc2--;
source = pc2;
/* 检查 source与sub相等的循环结束后,
* pc2 对应的位置是在 sub 中串结束符处。该是源串中下一个位置。
* 将 source 指向其前面一个字符。
***************************************************/
}
else /*如果没找到子串,下面复制source所指的字节到结果串*/
*pc1++ = *source;
source++; /* 将source向后移一个字符*/
}
*pc1 = NULL;
return result;
}
测试:
char *str = "{name}你好,你是{name}吗?";
str= replace(str,"{name}","客户");
printf("%s",str);
free(str);
逐行读取文本文件的代码:
int maxLen = 1024;
char buf[MAX_LINE];
FILE *fp;
int len;
if((fp = fopen("c:/boot.ini1", "r")) == NULL)
{
printf("文件打开失败!");
return;
}
while(fgets(buf, MAX_LINE, fp) != NULL)
{
len = strlen(buf);
buf[len - 1] = '\0';
printf("%s\n", buf);
}
- C语言代码段:Replace函数和逐行读取文本文件
- 关于C语言中文本文件的逐行读取的实现
- C语言逐行读取
- C文件操作示例:逐行读取文本文件
- C/C++逐行读取文本文件的数据
- java逐行读取和写入文本文件txt
- C语言逐行读取文件
- C语言逐行读取文件
- [代码实例][C语言]读取文本文件
- 逐行读取文本文件
- J2ME逐行读取文本文件
- 如何逐行读取文本文件
- vc逐行读取文本文件
- C++ 逐行读取文本文件
- C++逐行读取文本文件
- 逐字、逐行、直接读取文本文件
- C语言中用fscanf函数读取文本文件所有内容
- 用c语言读取文本文件
- EXTJs 表格分页
- ubuntu目录结构
- css img周围有空隙
- tomcat配置
- win7+centOS双系统
- C语言代码段:Replace函数和逐行读取文本文件
- Excel导入的相关问题
- mysql基本操作
- 关于学习Hadoop中未总结的资料
- windows 7 下简单命令创建wifi(手机电脑同时联网)
- centOS只能打开百度、谷歌等网站的问题
- 导航下拉二级菜单特效
- CentOS 6.3+apache+nginx+mysql+php环境配置
- CentOS6.4系统中Mysql数据库卸载、安装与配置教程